{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "46b61fb9-841d-4a00-9c3b-e550fb6c1040",
   "metadata": {},
   "source": [
    "数据处理模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "380b50dd-586c-4e8e-93cc-7382619056c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pickle\n",
    "from datetime import datetime\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import polars as pl\n",
    "import lightgbm as lgb\n",
    "import xgboost as xgb\n",
    "from catboost import CatBoostRegressor\n",
    "from sklearn.model_selection import train_test_split, TimeSeriesSplit\n",
    "from sklearn.metrics import mean_absolute_error\n",
    "from sklearn.feature_selection import SelectFromModel\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from itertools import combinations\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from numba import njit, prange\n",
    "import gc\n",
    "import warnings\n",
    "import seaborn as sns\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.linear_model import LinearRegression\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "# 数据读取函数\n",
    "def read_data_efficiently(file_path, debug=False, sample_size=10000, random_seed=42):\n",
    "    \"\"\"高效读取CSV数据\"\"\"\n",
    "    print(f\"Reading data from {file_path}...\")\n",
    "    if debug:\n",
    "        # 仅读取少量数据用于调试\n",
    "        df = pl.read_csv(file_path).sample(n=sample_size, seed=random_seed)\n",
    "    else:\n",
    "        df = pl.read_csv(file_path)\n",
    "    print(f\"Data shape: {df.shape}\")\n",
    "    return df\n",
    "\n",
    "# 数据清洗函数\n",
    "def clean_data(df, is_test=True):\n",
    "    \"\"\"清洗数据，处理缺失值，支持测试集模式\"\"\"\n",
    "    print(\"Cleaning data...\")\n",
    "    \n",
    "    # 使用Polars进行高效过滤\n",
    "    if is_test:\n",
    "        # 测试集模式，不检查target列\n",
    "        clean_df = df.filter(\n",
    "            pl.col('imbalance_size').is_not_null() &\n",
    "            pl.col('reference_price').is_not_null() &\n",
    "            pl.col('matched_size').is_not_null() &\n",
    "            pl.col('bid_price').is_not_null() &\n",
    "            pl.col('ask_price').is_not_null() &\n",
    "            pl.col('wap').is_not_null()\n",
    "        )\n",
    "    else:\n",
    "        # 训练集模式，包含target列检查\n",
    "        clean_df = df.filter(\n",
    "            pl.col('target').is_not_null() &\n",
    "            pl.col('imbalance_size').is_not_null() &\n",
    "            pl.col('reference_price').is_not_null() &\n",
    "            pl.col('matched_size').is_not_null() &\n",
    "            pl.col('bid_price').is_not_null() &\n",
    "            pl.col('ask_price').is_not_null() &\n",
    "            pl.col('wap').is_not_null()\n",
    "        )\n",
    "    \n",
    "    print(f\"Data shape after cleaning: {clean_df.shape}\")\n",
    "    return clean_df\n",
    "def advanced_data_preprocessing(df):\n",
    "    \"\"\"执行高级数据预处理流程（优化版）\"\"\"\n",
    "    print(\"Starting advanced data preprocessing...\")\n",
    "    \n",
    "    # 转换为pandas以便进行详细分析\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        pdf = df.to_pandas()\n",
    "    else:\n",
    "        pdf = df.copy()\n",
    "    \n",
    "    # 1. 强制转换关键字段为数值类型\n",
    "    def convert_numeric(cols):\n",
    "        for col in cols:\n",
    "            if col in pdf.columns:\n",
    "                # 清理非常规字符（如\"78_260_169\" -> 78260169）\n",
    "                pdf[col] = pdf[col].astype(str).str.replace('[^0-9.]', '', regex=True)\n",
    "                # 转换为数值，无效值设为NaN\n",
    "                pdf[col] = pd.to_numeric(pdf[col], errors='coerce')\n",
    "                # 记录转换失败的数量\n",
    "                failed = pdf[col].isna().sum() - pdf[col].isna().sum()\n",
    "                if failed > 0:\n",
    "                    print(f\"Warning: {failed} values failed to convert in {col}\")\n",
    "\n",
    "    # 特别处理需要转换的字段\n",
    "    convert_numeric(['far_price', 'near_price', 'bid_price', 'ask_price'])\n",
    "    \n",
    "    # 2. 缺失值处理增强\n",
    "    def enhanced_missing_value_treatment(col, threshold=0.3):\n",
    "        missing_pct = pdf[col].isna().mean()\n",
    "        \n",
    "        # 高缺失率特征处理\n",
    "        if missing_pct > threshold:\n",
    "            # 创建缺失指示器\n",
    "            indicator_name = f\"{col}_missing\"\n",
    "            pdf[indicator_name] = pdf[col].isna().astype(np.int8)\n",
    "            \n",
    "            # 分组填充\n",
    "            if pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "                # 数值型：按股票分组填充中位数\n",
    "                pdf[col] = pdf.groupby('stock_id')[col].transform(\n",
    "                    lambda x: x.fillna(x.median()))\n",
    "                # 全局填充剩余缺失\n",
    "                global_fill = pdf[col].median()\n",
    "            else:\n",
    "                # 非数值型：按股票分组填充众数\n",
    "                pdf[col] = pdf.groupby('stock_id')[col].transform(\n",
    "                    lambda x: x.fillna(x.mode()[0] if not x.mode().empty else None))\n",
    "                # 全局填充剩余缺失\n",
    "                global_fill = pdf[col].mode()[0] if not pdf[col].mode().empty else None\n",
    "                \n",
    "            pdf[col] = pdf[col].fillna(global_fill)\n",
    "            print(f\"Processed high-missing column {col}: {missing_pct:.1%} -> 0.00%\")\n",
    "        \n",
    "        # 低缺失率直接填充\n",
    "        elif missing_pct > 0:\n",
    "            if pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "                fill_value = pdf[col].median()\n",
    "            else:\n",
    "                fill_value = pdf[col].mode()[0]\n",
    "            pdf[col] = pdf[col].fillna(fill_value)\n",
    "            print(f\"Filled low-missing column {col}: {missing_pct:.1%} -> 0.00%\")\n",
    "\n",
    "    # 对所有列进行缺失值处理\n",
    "    for col in pdf.columns:\n",
    "        enhanced_missing_value_treatment(col, threshold=0.3)\n",
    "\n",
    "    # 3. 改进的异常值处理\n",
    "    def quantile_clipping(col, lower=0.01, upper=0.99):\n",
    "        if pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "            # 计算分位数\n",
    "            q_low = pdf[col].quantile(lower)\n",
    "            q_high = pdf[col].quantile(upper)\n",
    "            \n",
    "            # 记录原始分布\n",
    "            original_std = pdf[col].std()\n",
    "            \n",
    "            # 执行裁剪\n",
    "            clipped = pdf[col].clip(q_low, q_high)\n",
    "            \n",
    "            # 计算影响\n",
    "            n_outliers = (pdf[col] != clipped).sum()\n",
    "            new_std = clipped.std()\n",
    "            \n",
    "            print(f\"Clipped {n_outliers} outliers in {col}:\")\n",
    "            print(f\"  Range: [{q_low:.2f}, {q_high:.2f}]\")\n",
    "            print(f\"  Std: {original_std:.2f} -> {new_std:.2f}\")\n",
    "            \n",
    "            return clipped\n",
    "        return pdf[col]\n",
    "\n",
    "    # 应用异常值处理（排除关键标识列）\n",
    "    exclude_cols = ['stock_id', 'date_id', 'seconds_in_bucket', 'row_id', 'target']\n",
    "    for col in pdf.columns:\n",
    "        if col not in exclude_cols and pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "            pdf[col] = quantile_clipping(col)\n",
    "\n",
    "    # 4. 类型优化与内存管理\n",
    "    def optimize_dtypes(df):\n",
    "        # 整数类型优化\n",
    "        int_cols = df.select_dtypes(include=['int64']).columns\n",
    "        df[int_cols] = df[int_cols].apply(pd.to_numeric, downcast='integer')\n",
    "        \n",
    "        # 浮点类型优化\n",
    "        float_cols = df.select_dtypes(include=['float64']).columns\n",
    "        df[float_cols] = df[float_cols].apply(pd.to_numeric, downcast='float')\n",
    "        \n",
    "        # 对象类型处理\n",
    "        obj_cols = df.select_dtypes(include=['object']).columns\n",
    "        for col in obj_cols:\n",
    "            num_unique = df[col].nunique()\n",
    "            if num_unique < 0.5 * len(df):  # 半唯一值以下转为category\n",
    "                df[col] = df[col].astype('category')\n",
    "        \n",
    "        return df\n",
    "\n",
    "    pdf = optimize_dtypes(pdf)\n",
    "    \n",
    "    # 5. 最终检查\n",
    "    print(\"\\nFinal Data Check:\")\n",
    "    print(f\"Shape: {pdf.shape}\")\n",
    "    print(f\"Remaining missing values: {pdf.isna().sum().sum()}\")\n",
    "    print(\"\\nOptimized Data Types:\")\n",
    "    print(pdf.dtypes)\n",
    "    \n",
    "    return pl.from_pandas(pdf) if isinstance(df, pl.DataFrame) else pdf\n",
    "    \n",
    "    # 全局填充低缺失率的列\n",
    "    if columns_to_fill_global:\n",
    "        for col in columns_to_fill_global:\n",
    "            if col in pdf.columns:  # 确保列没有被删除\n",
    "                before_fillna = pdf[col].isna().sum()\n",
    "                if pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "                    # 数值型用中位数\n",
    "                    pdf[col] = pdf[col].fillna(pdf[col].median())\n",
    "                    print(f\"Filled {before_fillna} missing values in '{col}' with global median\")\n",
    "                else:\n",
    "                    # 非数值型用众数\n",
    "                    pdf[col] = pdf[col].fillna(pdf[col].mode()[0])\n",
    "                    print(f\"Filled {before_fillna} missing values in '{col}' with global mode\")\n",
    "    \n",
    "    # 5. 处理异常值\n",
    "    print(\"\\n5. Handling Outliers\")\n",
    "    numeric_columns = pdf.select_dtypes(include=['number']).columns.tolist()\n",
    "    \n",
    "    # 从异常值处理中排除的列\n",
    "    exclude_from_outlier = ['stock_id', 'date_id', 'seconds_in_bucket', 'target', 'row_id']\n",
    "    columns_for_outlier_treatment = [col for col in numeric_columns if col not in exclude_from_outlier]\n",
    "    \n",
    "    for col in columns_for_outlier_treatment:\n",
    "        if col in pdf.columns:  # 确保列存在\n",
    "            # 计算IQR(四分位范围)\n",
    "            Q1 = pdf[col].quantile(0.25)\n",
    "            Q3 = pdf[col].quantile(0.75)\n",
    "            IQR = Q3 - Q1\n",
    "            \n",
    "            # 定义异常值界限 - 更宽松的界限\n",
    "            lower_bound = Q1 - 3 * IQR\n",
    "            upper_bound = Q3 + 3 * IQR\n",
    "            \n",
    "            # 计算异常值数量\n",
    "            outliers = ((pdf[col] < lower_bound) | (pdf[col] > upper_bound)).sum()\n",
    "            \n",
    "            if outliers > 0:\n",
    "                print(f\"Found {outliers} outliers in '{col}' ({outliers/len(pdf):.2%})\")\n",
    "                \n",
    "                # 如果异常值比例低于5%，进行处理\n",
    "                if outliers/len(pdf) < 0.05:\n",
    "                    pdf[col] = pdf[col].clip(lower_bound, upper_bound)\n",
    "                    print(f\"  - Clipped outliers to range [{lower_bound:.2f}, {upper_bound:.2f}]\")\n",
    "                else:\n",
    "                    print(f\"  - Outlier proportion too high, applying log transformation instead\")\n",
    "                    # 对于有大量异常值的特征，考虑使用对数变换\n",
    "                    if pdf[col].min() > 0:  # 确保所有值为正\n",
    "                        pdf[col] = np.log1p(pdf[col])\n",
    "                    else:\n",
    "                        # 如果有负值或零值，进行偏移\n",
    "                        min_val = pdf[col].min()\n",
    "                        if min_val <= 0:\n",
    "                            pdf[col] = np.log1p(pdf[col] - min_val + 1)\n",
    "    \n",
    "    # 6. 类型优化 - 调用你已有的内存优化函数\n",
    "    print(\"\\n6. Type Optimization and Memory Reduction\")\n",
    "    pdf = reduce_mem_usage(pdf)\n",
    "    \n",
    "    # 7. 最终检查\n",
    "    print(\"\\n7. Final Data Check\")\n",
    "    print(f\"Final data shape: {pdf.shape}\")\n",
    "    final_missing = pdf.isna().sum().sum()\n",
    "    print(f\"Remaining missing values: {final_missing}\")\n",
    "    \n",
    "    if final_missing > 0:\n",
    "        print(\"WARNING: There are still missing values in the dataset!\")\n",
    "        missing_cols = pdf.columns[pdf.isna().any()].tolist()\n",
    "        print(f\"Columns with missing values: {missing_cols}\")\n",
    "        \n",
    "        # 最后的应急处理 - 填充任何剩余的缺失值\n",
    "        for col in missing_cols:\n",
    "            if pd.api.types.is_numeric_dtype(pdf[col]):\n",
    "                pdf[col] = pdf[col].fillna(0)  # 用0填充数值型\n",
    "            else:\n",
    "                pdf[col] = pdf[col].fillna(\"unknown\")  # 用\"unknown\"填充非数值型\n",
    "        \n",
    "        print(\"Filled all remaining missing values with defaults\")\n",
    "    \n",
    "    # 8. 检查数据类型\n",
    "    print(\"\\nData types after preprocessing:\")\n",
    "    print(pdf.dtypes)\n",
    "    \n",
    "    # 9. 转回polars(如果原始输入是polars)\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        result_df = pl.from_pandas(pdf)\n",
    "    else:\n",
    "        result_df = pdf\n",
    "    \n",
    "    return result_df\n",
    "# ======================== 辅助函数 ========================    \n",
    "def reduce_mem_usage(df):\n",
    "    \"\"\"降低DataFrame的内存使用\"\"\"\n",
    "    start_mem = df.memory_usage().sum() / 1024**2\n",
    "    print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))\n",
    "    \n",
    "    for col in df.columns:\n",
    "        col_type = df[col].dtype\n",
    "        \n",
    "        if col_type != object and col_type != 'category':\n",
    "            c_min = df[col].min()\n",
    "            c_max = df[col].max()\n",
    "            \n",
    "            if str(col_type)[:3] == 'int':\n",
    "                if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:\n",
    "                    df[col] = df[col].astype(np.int8)\n",
    "                elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:\n",
    "                    df[col] = df[col].astype(np.int16)\n",
    "                elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:\n",
    "                    df[col] = df[col].astype(np.int32)\n",
    "            else:\n",
    "                if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:\n",
    "                    df[col] = df[col].astype(np.float16)\n",
    "                elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:\n",
    "                    df[col] = df[col].astype(np.float32)\n",
    "    \n",
    "    end_mem = df.memory_usage().sum() / 1024**2\n",
    "    print('Memory usage after optimization is: {:.2f} MB'.format(end_mem))\n",
    "    print('Decreased by {:.1f}%'.format(100 * (start_mem - end_mem) / start_mem))\n",
    "    \n",
    "    return df\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "372ce568-b3ce-4a98-8d85-7a54fc63cade",
   "metadata": {},
   "source": [
    "特征工程模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "74abd799-77fd-4230-b159-923329ae9d41",
   "metadata": {},
   "outputs": [],
   "source": [
    "# feature_engineering.py\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import polars as pl\n",
    "from numba import njit, prange\n",
    "from itertools import combinations\n",
    "import gc\n",
    "\n",
    "\n",
    "def calculate_rsi(series, window):\n",
    "    \"\"\"计算相对强弱指标(RSI)\"\"\"\n",
    "    delta = series.diff()\n",
    "    up = delta.clip(lower=0)\n",
    "    down = -delta.clip(upper=0)\n",
    "    \n",
    "    ma_up = up.rolling(window).mean()\n",
    "    ma_down = down.rolling(window).mean()\n",
    "    \n",
    "    rsi = 100 - (100 / (1 + ma_up / ma_down))\n",
    "    return rsi\n",
    "def engineer_optimized_features(df):\n",
    "    print(\"Starting optimized feature engineering...\")\n",
    "    \n",
    "    # 转为pandas处理\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        pdf = df.to_pandas()\n",
    "    else:\n",
    "        pdf = df.copy()\n",
    "    \n",
    "    # 基础特征 - 确保有基础特征\n",
    "    if 'spread' not in pdf.columns:\n",
    "        pdf['spread'] = pdf['ask_price'] - pdf['bid_price']\n",
    "    \n",
    "    if 'mid_price' not in pdf.columns:\n",
    "        pdf['mid_price'] = (pdf['ask_price'] + pdf['bid_price']) / 2\n",
    "    \n",
    "    # ===== 1. 成交量特征 =====\n",
    "    print(\"1. 添加成交量特征...\")\n",
    "    # 标准化计算\n",
    "    pdf['wap_z'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: (x - x.mean()) / (x.std() + 1e-5)\n",
    "    )\n",
    "    pdf['matched_size_z'] = pdf.groupby(['stock_id', 'date_id'])['matched_size'].transform(\n",
    "        lambda x: (x - x.mean()) / (x.std() + 1e-5)\n",
    "    )\n",
    "    pdf['normalized_price_volume'] = pdf['wap_z'] * pdf['matched_size_z']\n",
    "    # 删除临时计算列\n",
    "    pdf.drop(['wap_z', 'matched_size_z'], axis=1, inplace=True)\n",
    "    # ===== 2. 时间特征 =====\n",
    "    print(\"2. 添加时间特征...\")\n",
    "    # seconds_in_bucket特征已存在，无需创建\n",
    "    # 市场收盘时间\n",
    "    pdf['time_to_market_close'] = (540 - pdf['seconds_in_bucket'])\n",
    "    \n",
    "    # 时间周期特征\n",
    "    pdf['minute_cos'] = np.cos(2 * np.pi * (pdf['seconds_in_bucket'] // 60) / 60)\n",
    "    pdf['minute_sin'] = np.sin(2 * np.pi * (pdf['seconds_in_bucket'] // 60) / 60)\n",
    "    \n",
    "    # ===== 3. WAP相关特征 =====\n",
    "    print(\"3. 添加WAP相关特征...\")\n",
    "    # 计算wap峰度和偏度\n",
    "    pdf['wap_kurt'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x.rolling(50, min_periods=5).kurt()\n",
    "    )\n",
    "    \n",
    "    pdf['wap_skew'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x.rolling(50, min_periods=5).skew()\n",
    "    )\n",
    "    \n",
    "    # MACD计算\n",
    "    ema12 = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x.ewm(span=12, min_periods=5).mean()\n",
    "    )\n",
    "    ema26 = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x.ewm(span=26, min_periods=10).mean()\n",
    "    )\n",
    "    pdf['wap_macd'] = ema12 - ema26\n",
    "    \n",
    "    # 近期和远期价格\n",
    "    pdf['near_price'] = pdf.groupby(['stock_id', 'date_id'])['wap'].shift(1)\n",
    "    pdf['far_price'] = pdf.groupby(['stock_id', 'date_id'])['wap'].shift(5)\n",
    "    \n",
    "    # WAP的一阶差分\n",
    "    pdf['wap_diff'] = pdf.groupby(['stock_id', 'date_id'])['wap'].diff()\n",
    "    \n",
    "    # ===== 4. 滚动窗口特征 =====\n",
    "    print(\"4. 添加滚动窗口特征...\")\n",
    "    # 20窗口滚动特征 (保留最重要的几个)\n",
    "    for window in [10, 20]:\n",
    "        pdf[f'wap_diff_rolling_mean_{window}'] = pdf.groupby(['stock_id', 'date_id'])['wap_diff'].transform(\n",
    "            lambda x: x.rolling(window, min_periods=3).mean()\n",
    "        )\n",
    "        pdf[f'wap_diff_rolling_max_{window}'] = pdf.groupby(['stock_id', 'date_id'])['wap_diff'].transform(\n",
    "            lambda x: x.rolling(window, min_periods=3).max()\n",
    "        )\n",
    "        pdf[f'wap_diff_rolling_min_{window}'] = pdf.groupby(['stock_id', 'date_id'])['wap_diff'].transform(\n",
    "            lambda x: x.rolling(window, min_periods=3).min()\n",
    "        )\n",
    "        pdf[f'wap_diff_rolling_std_{window}'] = pdf.groupby(['stock_id', 'date_id'])['wap_diff'].transform(\n",
    "            lambda x: x.rolling(window, min_periods=3).std()\n",
    "        )\n",
    "    \n",
    "    # 10窗口方差\n",
    "    pdf['wap_diff_rolling_std_10'] = pdf.groupby(['stock_id', 'date_id'])['wap_diff'].transform(\n",
    "        lambda x: x.rolling(10, min_periods=3).std()\n",
    "    )\n",
    "    pdf['wap_rolling_std_10'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x.rolling(10, min_periods=3).std()\n",
    "    )\n",
    "    \n",
    "    # ===== 5. 订单簿特征 =====\n",
    "    print(\"5. 添加订单簿特征...\")\n",
    "    # Roll隐含价差 - 修复后的实现，避免TypeError\n",
    "    # 初始化列\n",
    "    pdf['roll_implicit_spread'] = np.nan\n",
    "    \n",
    "    # 分组计算\n",
    "    for name, group in pdf.groupby(['stock_id', 'date_id']):\n",
    "        if len(group) > 10:  # 确保有足够的数据计算自相关\n",
    "            price_diff = group['wap'].diff().dropna()\n",
    "            if len(price_diff) > 1:\n",
    "                # 计算lag-1自相关系数\n",
    "                acf_1 = np.corrcoef(price_diff.iloc[1:].values, price_diff.iloc[:-1].values)[0, 1]\n",
    "                # 计算Roll隐含价差\n",
    "                if acf_1 < 0:  # 只有当自相关为负时才有意义\n",
    "                    roll_value = 2 * np.sqrt(-acf_1)\n",
    "                    # 填充当前组的值\n",
    "                    pdf.loc[group.index, 'roll_implicit_spread'] = roll_value\n",
    "    \n",
    "    # 填充缺失的Roll隐含价差\n",
    "    pdf['roll_implicit_spread'] = pdf['roll_implicit_spread'].fillna(pdf['spread'])\n",
    "    \n",
    "    # 不平衡价差\n",
    "    pdf['imbalance_spread'] = pdf['spread'] * (\n",
    "        (pdf['bid_size'] - pdf['ask_size']) / (pdf['bid_size'] + pdf['ask_size'] + 1e-5)\n",
    "    )\n",
    "    \n",
    "    # 价差滚动特征\n",
    "    pdf['spread_rolling_std_5'] = pdf.groupby(['stock_id', 'date_id'])['spread'].transform(\n",
    "        lambda x: x.rolling(5, min_periods=2).std()\n",
    "    )\n",
    "    pdf['spread_rolling_mean_10'] = pdf.groupby(['stock_id', 'date_id'])['spread'].transform(\n",
    "        lambda x: x.rolling(10, min_periods=3).mean()\n",
    "    )\n",
    "    \n",
    "    # ===== 6. RSI特征 =====\n",
    "    print(\"6. 添加RSI特征...\")\n",
    "    # 计算不同窗口的RSI\n",
    "    for window in [8, 13, 21]:\n",
    "        pdf[f'rsi_ewm_{window}'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "            lambda x: calculate_rsi(x, window)\n",
    "        )\n",
    "        \n",
    "        pdf[f'rsi_spread_{window}'] = pdf.groupby(['stock_id', 'date_id'])['spread'].transform(\n",
    "            lambda x: calculate_rsi(x, window)\n",
    "        )\n",
    "    \n",
    "    # ===== 7. 引用价格特征 =====\n",
    "    print(\"7. 添加引用价格特征...\")\n",
    "    # 引用价格相关特征\n",
    "    pdf['ref_vs_spread'] = pdf['reference_price'] - pdf['spread'] / 2\n",
    "    pdf['wap_vs_ref'] = pdf['wap'] - pdf['ref_vs_spread']\n",
    "    \n",
    "    # ===== 8. 其他重要特征 =====\n",
    "    print(\"8. 添加其他重要特征...\")\n",
    "    # 成交量百分比变化\n",
    "    pdf['matched_size_pct_change'] = pdf.groupby(['stock_id', 'date_id'])['matched_size'].pct_change()\n",
    "    \n",
    "    # 动量特征\n",
    "    pdf['wap_momentum_10'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: x / x.shift(10) - 1\n",
    "    )\n",
    "    \n",
    "    # 缺失值指示器\n",
    "    pdf['near_price_missing'] = pdf['near_price'].isna().astype(int)\n",
    "    \n",
    "    # 填充缺失值 (先分组填充，再全局填充)\n",
    "    for col in pdf.columns:\n",
    "        if pdf[col].isna().sum() > 0:\n",
    "            # 先按股票和日期分组填充\n",
    "            pdf[col] = pdf.groupby(['stock_id', 'date_id'])[col].transform(\n",
    "                lambda x: x.fillna(method='ffill').fillna(method='bfill')\n",
    "            )\n",
    "            # 仍有缺失值就用全局中位数填充\n",
    "            if pdf[col].isna().sum() > 0:\n",
    "                fill_value = pdf[col].median() if pdf[col].dtype.kind in 'fc' else 0\n",
    "                pdf[col] = pdf[col].fillna(fill_value)\n",
    "    \n",
    "    print(f\"特征工程完成。总特征数量: {len(pdf.columns)}\")\n",
    "    \n",
    "    # 转回polars或保持pandas格式\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        result_df = pl.from_pandas(pdf)\n",
    "    else:\n",
    "        result_df = pdf\n",
    "    \n",
    "    return result_df\n",
    "\n",
    "# ======================== 基础特征工程 ========================\n",
    "def add_basic_features(df):\n",
    "    \"\"\"添加基础特征\"\"\"\n",
    "    print(\"Adding basic features...\")\n",
    "    \n",
    "    df = df.with_columns([\n",
    "        # 价格类特征\n",
    "        (pl.col('ask_price') - pl.col('bid_price')).alias('spread'),\n",
    "        ((pl.col('ask_price') + pl.col('bid_price')) / 2.0).alias('mid_price'),\n",
    "        \n",
    "        # 流动性特征\n",
    "        (pl.col('imbalance_size') / (pl.col('matched_size') + 1e-5)).alias('price_impact'),\n",
    "        (pl.col('bid_size') + pl.col('ask_size')).alias('total_volume'),\n",
    "        (pl.col('bid_size') / (pl.col('ask_size') + 1e-5)).alias('bid_ask_size_ratio'),\n",
    "        \n",
    "        # 对数转换\n",
    "        pl.col('wap').log1p().alias('log_wap'),\n",
    "        pl.col('matched_size').log1p().alias('log_matched_size'),\n",
    "        pl.col('imbalance_size').log1p().alias('log_imbalance_size'),\n",
    "        \n",
    "        # 交叉特征\n",
    "        ((pl.col('ask_price') - pl.col('bid_price')) * \n",
    "         (pl.col('imbalance_size') / (pl.col('matched_size') + 1e-5))).alias('volatility_proxy'),\n",
    "        \n",
    "        # 参考价格相关特征\n",
    "        (pl.col('wap') / (pl.col('reference_price') + 1e-5)).alias('wap_vs_ref'),\n",
    "        (pl.col('reference_price') - pl.col('wap')).alias('ref_price_diff'),\n",
    "        ((pl.col('reference_price') - pl.col('wap')) / (pl.col('ask_price') - pl.col('bid_price') + 1e-5)).alias('ref_vs_spread'),\n",
    "        \n",
    "        # 其他特征\n",
    "        ((pl.col('imbalance_size') / (pl.col('matched_size') + 1e-5)) * \n",
    "         (pl.col('ask_price') - pl.col('bid_price'))).alias('impact_times_spread'),\n",
    "        (pl.col('ask_price') - pl.col('bid_price')).pow(2).alias('spread_squared')\n",
    "    ])\n",
    "    \n",
    "    return df\n",
    "    \n",
    "    # \"\"\"添加高阶交互特征\"\"\"\n",
    "    \n",
    "def add_interaction_features(df):\n",
    "    \"\"\"添加高阶交互特征\"\"\"\n",
    "    print(\"Adding interaction features...\")\n",
    "    \n",
    "    # 价格和量的交互\n",
    "    df = df.with_columns([\n",
    "        (pl.col('wap') * pl.col('matched_size')).alias('price_volume'),\n",
    "        (pl.col('spread') * pl.col('imbalance_size')).alias('spread_imbalance'),\n",
    "        (pl.col('wap_diff') * pl.col('matched_size_diff')).alias('price_volume_momentum')\n",
    "    ])\n",
    "    \n",
    "    # 预测目标相关的历史交互特征\n",
    "    windows = [3, 5, 10]\n",
    "    for window in windows:\n",
    "        df = df.with_columns([\n",
    "            # 使用wap的历史信息替代target\n",
    "            (pl.col('wap').rolling_mean(window).over(['stock_id', 'date_id']) * \n",
    "             pl.col('wap_diff')).alias(f'price_momentum_interaction_{window}'),\n",
    "            \n",
    "            # 使用bid-ask差价作为波动性指标\n",
    "            (pl.col('spread').rolling_std(window).over(['stock_id', 'date_id']) * \n",
    "             pl.col('matched_size')).alias(f'spread_volume_volatility_{window}')\n",
    "        ])\n",
    "    \n",
    "    return df\n",
    "# ======================== 高级统计特征 ========================\n",
    "def add_statistical_features(df):\n",
    "    \"\"\"添加高级统计特征 (修复版)\"\"\"\n",
    "    print(\"Adding statistical features...\")\n",
    "    \n",
    "    # 按股票和日期分组的特征\n",
    "    df = df.with_columns([\n",
    "        # 一阶统计量，使用shift和fill_null代替diff避免NaN\n",
    "        (pl.col('wap') - pl.col('wap').shift(1).over(['stock_id', 'date_id'])).fill_null(0).alias('wap_diff'),\n",
    "        (pl.col('reference_price') - pl.col('reference_price').shift(1).over(['stock_id', 'date_id'])).fill_null(0).alias('ref_price_diff'),\n",
    "        (pl.col('matched_size') - pl.col('matched_size').shift(1).over(['stock_id', 'date_id'])).fill_null(0).alias('matched_size_diff'),\n",
    "        (pl.col('imbalance_size') - pl.col('imbalance_size').shift(1).over(['stock_id', 'date_id'])).fill_null(0).alias('imbalance_size_diff'),\n",
    "        \n",
    "        # 二阶统计量 (加速度)，使用嵌套的shift和fill_null\n",
    "        (pl.col('wap') - 2 * pl.col('wap').shift(1).over(['stock_id', 'date_id']) + \n",
    "         pl.col('wap').shift(2).over(['stock_id', 'date_id'])).fill_null(0).alias('wap_acceleration'),\n",
    "        \n",
    "        # 简化其他特征计算，确保不会产生NaN\n",
    "        ((pl.col('ask_size') - pl.col('bid_size')) / (pl.col('ask_size') + pl.col('bid_size') + 1e-5)).alias('size_imbalance'),\n",
    "    ])\n",
    "    \n",
    "    # 添加基本的滚动特征\n",
    "    try:\n",
    "        # 如果有足够的数据，添加滚动均值\n",
    "        df = df.with_columns([\n",
    "            pl.col('wap').rolling_mean(window_size=3, min_periods=1).over(['stock_id', 'date_id']).alias('wap_rolling_mean_3'),\n",
    "            pl.col('spread').rolling_mean(window_size=3, min_periods=1).over(['stock_id', 'date_id']).alias('spread_rolling_mean_3')\n",
    "        ])\n",
    "    except Exception as e:\n",
    "        print(f\"添加滚动特征时出错: {e}\")\n",
    "    \n",
    "    return df\n",
    "# ======================== 市场微观结构特征 ========================\n",
    "def add_microstructure_features(df):\n",
    "    \"\"\"添加金融市场微观结构特征\"\"\"\n",
    "    print(\"Adding market microstructure features...\")\n",
    "    \n",
    "    df = df.with_columns([\n",
    "        # Kyle's Lambda (价格影响)\n",
    "        (pl.col('wap').diff().abs() / (pl.col('total_volume') + 1e-5)).over(['stock_id', 'date_id']).alias('kyle_lambda'),\n",
    "        \n",
    "        # Amihud非流动性比率\n",
    "        (pl.col('wap').diff().abs() / ((pl.col('bid_size') * pl.col('ask_size')).pow(0.5) + 1e-5)).over(['stock_id', 'date_id']).alias('amihud_ratio'),\n",
    "        \n",
    "        # 有效价差\n",
    "        (pl.col('ask_price') - pl.col('bid_price')).alias('effective_spread'),\n",
    "        \n",
    "        # 相对有效价差\n",
    "        ((pl.col('ask_price') - pl.col('bid_price')) / pl.col('wap')).alias('relative_spread'),\n",
    "        \n",
    "        # 订单流不平衡指标\n",
    "        ((pl.col('bid_size') - pl.col('ask_size')) / (pl.col('bid_size') + pl.col('ask_size') + 1e-5)).alias('order_flow_imbalance'),\n",
    "        \n",
    "        # Roll模型隐含价差估计 (简化版)\n",
    "        (2 * pl.col('wap').diff().abs().sqrt().mean().over(['stock_id', 'date_id'])).alias('roll_implicit_spread'),\n",
    "        \n",
    "        # PIN模型简化特征 - 不平衡方向变化\n",
    "        (pl.col('imbalance_buy_sell_flag').diff().abs().over(['stock_id', 'date_id'])).alias('imbalance_direction_change'),\n",
    "    ])\n",
    "    \n",
    "    return df\n",
    "# ======================== 时间序列特征 ========================\n",
    "def add_time_series_features(df):\n",
    "    \"\"\"添加时间序列特征\"\"\"\n",
    "    print(\"Adding time series features...\")\n",
    "    \n",
    "    # 设定滚动窗口大小\n",
    "    windows = [3, 5, 10, 20]\n",
    "    rolling_targets = ['wap', 'spread', 'bid_size', 'ask_size', 'price_impact', 'total_volume', 'wap_diff']\n",
    "    \n",
    "    # 构建滚动窗口表达式\n",
    "    rolling_exprs = []\n",
    "    \n",
    "    for target in rolling_targets:\n",
    "        for window in windows:\n",
    "            rolling_exprs.extend([\n",
    "                pl.col(target).rolling_mean(window).over(['stock_id', 'date_id']).alias(f'{target}_rolling_mean_{window}'),\n",
    "                pl.col(target).rolling_std(window).over(['stock_id', 'date_id']).alias(f'{target}_rolling_std_{window}'),\n",
    "                pl.col(target).rolling_max(window).over(['stock_id', 'date_id']).alias(f'{target}_rolling_max_{window}'),\n",
    "                pl.col(target).rolling_min(window).over(['stock_id', 'date_id']).alias(f'{target}_rolling_min_{window}')\n",
    "            ])\n",
    "    \n",
    "    # 添加EMA特征 (指数移动平均)\n",
    "    for target in ['wap', 'spread', 'price_impact']:\n",
    "        for span in [5, 10, 20]:\n",
    "            rolling_exprs.extend([\n",
    "                pl.col(target).ewm_mean(span=span).over(['stock_id', 'date_id']).alias(f'{target}_ewm_{span}')\n",
    "            ])\n",
    "    \n",
    "    # 添加MACD类指标 (仅示例)\n",
    "    rolling_exprs.extend([\n",
    "        (pl.col('wap').ewm_mean(span=12) - pl.col('wap').ewm_mean(span=26)).over(['stock_id', 'date_id']).alias('wap_macd'),\n",
    "    ])\n",
    "    \n",
    "    # 添加动量特征\n",
    "    for window in [3, 5, 10]:\n",
    "        rolling_exprs.extend([\n",
    "            # 价格动量\n",
    "            (pl.col('wap') / pl.col('wap').shift(window) - 1).over(['stock_id', 'date_id']).alias(f'wap_momentum_{window}'),\n",
    "            # 价格振幅\n",
    "            ((pl.col('wap').rolling_max(window) - pl.col('wap').rolling_min(window)) / \n",
    "             pl.col('wap').rolling_mean(window)).over(['stock_id', 'date_id']).alias(f'wap_amplitude_{window}')\n",
    "        ])\n",
    "    \n",
    "    # 一次性添加所有特征\n",
    "    df = df.with_columns(rolling_exprs)\n",
    "    \n",
    "    \n",
    "    return df\n",
    "\n",
    "# ======================== 时间周期特征 ========================\n",
    "def add_cyclical_features(df):\n",
    "    \"\"\"添加时间周期性特征\"\"\"\n",
    "    print(\"Adding cyclical time features...\")\n",
    "    \n",
    "    df = df.with_columns([\n",
    "        # 日内周期特征\n",
    "        (pl.col('seconds_in_bucket') % 60).alias('seconds'),\n",
    "        (pl.col('seconds_in_bucket') // 60).alias('minute'),\n",
    "        (pl.col('date_id') % 5).alias('dow'),  # 周内天数\n",
    "        \n",
    "        # 到市场收盘的剩余时间\n",
    "        (540 - pl.col('seconds_in_bucket')).alias('time_to_market_close'),\n",
    "    ])\n",
    "    \n",
    "    # 循环特征的三角变换（修复后的版本）\n",
    "    for col, period in zip(['seconds', 'minute', 'dow'], [60, 10, 5]):\n",
    "        df = df.with_columns([\n",
    "            (pl.col(col) * (2 * np.pi / period)).sin().alias(f'{col}_sin'),\n",
    "            (pl.col(col) * (2 * np.pi / period)).cos().alias(f'{col}_cos')\n",
    "        ])\n",
    "    \n",
    "    return df\n",
    "# \"\"\"添加供需不平衡相关的交互特征\"\"\"\n",
    "def add_supply_demand_features(df):\n",
    "    \"\"\"添加供需不平衡相关的交互特征\"\"\"\n",
    "    print(\"Adding supply-demand interaction features...\")\n",
    "    \n",
    "    df = df.with_columns([\n",
    "        # 买卖盘不平衡与价格变动\n",
    "        ((pl.col('bid_size') - pl.col('ask_size')) / (pl.col('bid_size') + pl.col('ask_size') + 1e-5) * \n",
    "         pl.col('wap_diff')).alias('imbalance_price_move'),\n",
    "        \n",
    "        # 买卖盘不平衡与价差\n",
    "        ((pl.col('bid_size') - pl.col('ask_size')) / (pl.col('bid_size') + pl.col('ask_size') + 1e-5) * \n",
    "         pl.col('spread')).alias('imbalance_spread'),\n",
    "         \n",
    "        # 不平衡程度与价格波动性\n",
    "        (pl.col('imbalance_size').abs() * \n",
    "         pl.col('wap').rolling_std(5).over(['stock_id', 'date_id'])).alias('imbalance_volatility'),\n",
    "         \n",
    "        # 不平衡方向与价格趋势\n",
    "        (pl.col('imbalance_buy_sell_flag') * \n",
    "         pl.col('wap_diff').rolling_mean(5).over(['stock_id', 'date_id'])).alias('imbalance_trend'),\n",
    "         \n",
    "        # 不平衡大小与交易量比率\n",
    "        (pl.col('imbalance_size') / (pl.col('matched_size') + 1e-5)).pow(2).alias('squared_imbalance_ratio')\n",
    "    ])\n",
    "    \n",
    "    return df\n",
    "#  \"\"\"添加非线性交互特征\"\"\"\n",
    "def add_nonlinear_interactions(df):\n",
    "    \"\"\"添加非线性交互特征\"\"\"\n",
    "    print(\"Adding nonlinear interaction features...\")\n",
    "    \n",
    "    # 将Polars DataFrame转换为Pandas DataFrame以便执行复杂的数学运算\n",
    "    pdf = df.to_pandas()\n",
    "    \n",
    "    # 使用Pandas进行计算\n",
    "    pdf['log_price_volume'] = np.log1p(pdf['wap']) * np.log1p(pdf['matched_size'])\n",
    "    pdf['squared_price_volume'] = pdf['wap_diff'].pow(2) * pdf['matched_size'].pow(2)\n",
    "    pdf['exp_time_price'] = pdf['wap_diff'] * np.exp(-0.1 * pdf['time_to_market_close'])\n",
    "    \n",
    "    # 标准化计算\n",
    "    pdf['wap_z'] = pdf.groupby(['stock_id', 'date_id'])['wap'].transform(\n",
    "        lambda x: (x - x.mean()) / (x.std() + 1e-5)\n",
    "    )\n",
    "    pdf['matched_size_z'] = pdf.groupby(['stock_id', 'date_id'])['matched_size'].transform(\n",
    "        lambda x: (x - x.mean()) / (x.std() + 1e-5)\n",
    "    )\n",
    "    pdf['normalized_price_volume'] = pdf['wap_z'] * pdf['matched_size_z']\n",
    "    \n",
    "    # 删除临时计算列\n",
    "    pdf.drop(['wap_z', 'matched_size_z'], axis=1, inplace=True)\n",
    "    \n",
    "    # 转回Polars DataFrame\n",
    "    result_df = pl.from_pandas(pdf)\n",
    "    \n",
    "    return result_df\n",
    "# ======================== Triplet Imbalance 特征 ========================\n",
    "@njit(parallel=True)\n",
    "def compute_triplet_imbalance(df_values, comb_indices):\n",
    "    \"\"\"计算三元价格不平衡特征\"\"\"\n",
    "    num_rows = df_values.shape[0]\n",
    "    num_combinations = len(comb_indices)\n",
    "    imbalance_features = np.empty((num_rows, num_combinations))\n",
    "    \n",
    "    for i in prange(num_combinations):\n",
    "        a, b, c = comb_indices[i]\n",
    "        for j in range(num_rows):\n",
    "            max_val = max(df_values[j, a], df_values[j, b], df_values[j, c])\n",
    "            min_val = min(df_values[j, a], df_values[j, b], df_values[j, c])\n",
    "            mid_val = df_values[j, a] + df_values[j, b] + df_values[j, c] - min_val - max_val\n",
    "            \n",
    "            if mid_val == min_val:\n",
    "                imbalance_features[j, i] = np.nan\n",
    "            else:\n",
    "                imbalance_features[j, i] = (max_val - mid_val) / (mid_val - min_val)\n",
    "    \n",
    "    return imbalance_features\n",
    "\n",
    "def calculate_triplet_imbalance_numba(price_cols, df):\n",
    "    \"\"\"使用Numba加速计算三元价格不平衡特征\"\"\"    \n",
    "    df_values = df[price_cols].values\n",
    "    comb_indices = [(price_cols.index(a), price_cols.index(b), price_cols.index(c)) \n",
    "                    for a, b, c in combinations(price_cols, 3)]\n",
    "    \n",
    "    features_array = compute_triplet_imbalance(df_values, comb_indices)\n",
    "    columns = [f\"{a}_{b}_{c}_imb2\" for a, b, c in combinations(price_cols, 3)]\n",
    "    \n",
    "    return pd.DataFrame(features_array, columns=columns)\n",
    "# ======================== 全局特征计算 ========================\n",
    "def compute_global_features(df):\n",
    "    \"\"\"计算每个股票的全局统计特征 (修复版)\"\"\"\n",
    "    print(\"Computing global stock features...\")\n",
    "    \n",
    "    # 将Polars DataFrame转为Pandas以便使用groupby API\n",
    "    pdf = df.to_pandas()\n",
    "    \n",
    "    # 修复: 使用agg函数传递字符串而不是直接调用方法\n",
    "    global_feats = pdf.groupby(\"stock_id\").agg({\n",
    "        'bid_size': ['median', 'std', 'max', 'min', 'skew'],\n",
    "        'ask_size': ['median', 'std', 'max', 'min', 'skew'],\n",
    "        'bid_price': ['median', 'std', 'max', 'min'],\n",
    "        'ask_price': ['median', 'std', 'max', 'min'],\n",
    "        'wap': ['median', 'std', 'skew'], # 移除'kurt'，改为'skew'\n",
    "        'spread': ['median', 'std', 'max']\n",
    "    })\n",
    "    \n",
    "    global_feats.columns = ['_'.join(col).strip() for col in global_feats.columns.values]\n",
    "    \n",
    "    # 计算复合特征\n",
    "    global_feats['median_size'] = global_feats['bid_size_median'] + global_feats['ask_size_median']\n",
    "    global_feats['std_size'] = global_feats['bid_size_std'] + global_feats['ask_size_std']\n",
    "    global_feats['ptp_size'] = global_feats['bid_size_max'] - global_feats['bid_size_min']\n",
    "    global_feats['median_price'] = global_feats['bid_price_median'] + global_feats['ask_price_median']\n",
    "    global_feats['std_price'] = global_feats['bid_price_std'] + global_feats['ask_price_std']\n",
    "    global_feats['ptp_price'] = global_feats['bid_price_max'] - global_feats['ask_price_min']\n",
    "    global_feats['size_price_corr'] = global_feats['std_size'] / (global_feats['std_price'] + 1e-5)\n",
    "    \n",
    "    # 转换为Polars DataFrame\n",
    "    global_feats = pl.from_pandas(global_feats.reset_index())\n",
    "    \n",
    "    return global_feats\n",
    "# 添加缺失的特征工程函数\n",
    "def engineer_features_safe(df):\n",
    "    \"\"\"执行特征工程流程，集成多种特征类型，强化空值处理，修复已知问题\"\"\"\n",
    "    print(\"开始特征工程...\")\n",
    "    \n",
    "    # 转为pandas DataFrame以便更灵活地处理\n",
    "    df_pd = df.to_pandas() if isinstance(df, pl.DataFrame) else df.copy()\n",
    "    \n",
    "    # 0. 初步检查空值情况\n",
    "    na_count = df_pd.isna().sum().sum()\n",
    "    print(f\"特征工程前的空值总数: {na_count}\")\n",
    "    \n",
    "    if na_count > 0:\n",
    "        # 显示每列的空值比例\n",
    "        na_cols = df_pd.isna().sum()\n",
    "        na_cols = na_cols[na_cols > 0].sort_values(ascending=False)\n",
    "        print(\"空值比例最高的前10列:\")\n",
    "        for col in na_cols.head(10).index:\n",
    "            pct = 100 * na_cols[col] / len(df_pd)\n",
    "            print(f\"  - {col}: {na_cols[col]} 空值 ({pct:.2f}%)\")\n",
    "    \n",
    "    # 1. 强化版空值处理 - 在特征工程前处理基础列的空值\n",
    "    print(\"预处理基础列的空值...\")\n",
    "    \n",
    "    # 1.1 按股票分组填充数值列\n",
    "    numeric_cols = df_pd.select_dtypes(include=['float', 'int']).columns\n",
    "    for col in numeric_cols:\n",
    "        # 如果列中有空值\n",
    "        if df_pd[col].isna().sum() > 0:\n",
    "            # 尝试按股票分组填充\n",
    "            try:\n",
    "                # 修复：确保使用有效的统计量\n",
    "                median_values = df_pd.groupby('stock_id')[col].transform('median')\n",
    "                df_pd[col] = df_pd[col].fillna(median_values)\n",
    "                \n",
    "                # 如果还有空值，用全局中位数填充\n",
    "                if df_pd[col].isna().sum() > 0:\n",
    "                    df_pd[col] = df_pd[col].fillna(df_pd[col].median())\n",
    "            except:\n",
    "                # 如果分组填充失败，使用全局中位数\n",
    "                df_pd[col] = df_pd[col].fillna(df_pd[col].median())\n",
    "            \n",
    "            # 如果还有空值，用0填充\n",
    "            if df_pd[col].isna().sum() > 0:\n",
    "                df_pd[col] = df_pd[col].fillna(0)\n",
    "    \n",
    "    # 转回polars进行特征计算\n",
    "    df = pl.from_pandas(df_pd)\n",
    "    \n",
    "    # 2. 添加基础特征，避免产生新的空值\n",
    "    try:\n",
    "        df = add_basic_features(df)\n",
    "    except Exception as e:\n",
    "        print(f\"添加基础特征时出错: {e}\")\n",
    "        # 如果失败，尝试一个简化版本\n",
    "        df = df.with_columns([\n",
    "            (pl.col('ask_price') - pl.col('bid_price')).alias('spread'),\n",
    "            ((pl.col('ask_price') + pl.col('bid_price')) / 2.0).alias('mid_price')\n",
    "        ])\n",
    "    \n",
    "    # 3. 添加修复版的高级统计特征\n",
    "    try:\n",
    "        df = add_statistical_features(df)  # 使用修复版的函数\n",
    "    except Exception as e:\n",
    "        print(f\"添加高级统计特征时出错: {e}\")\n",
    "    \n",
    "    # 4. 添加交互特征\n",
    "    try:\n",
    "        df = add_interaction_features(df)\n",
    "    except Exception as e:\n",
    "        print(f\"添加交互特征时出错: {e}\")\n",
    "    \n",
    "    # 5. 添加市场微观结构特征\n",
    "    try:\n",
    "        df = add_microstructure_features(df)\n",
    "    except Exception as e:\n",
    "        print(f\"添加市场微观结构特征时出错: {e}\")\n",
    "    \n",
    "    # 6. 添加时间周期特征\n",
    "    try:\n",
    "        df = add_cyclical_features(df)\n",
    "    except Exception as e:\n",
    "        print(f\"添加时间周期特征时出错: {e}\")\n",
    "    \n",
    "    # 7. 添加供需特征\n",
    "    try:\n",
    "        df = add_supply_demand_features(df)\n",
    "    except Exception as e:\n",
    "        print(f\"添加供需特征时出错: {e}\")\n",
    "    \n",
    "    # 8. 转为pandas DataFrame以便进一步处理\n",
    "    df_pd = df.to_pandas()\n",
    "    \n",
    "    # 9. 添加三元组不平衡特征\n",
    "    print(\"添加三元组不平衡特征...\")\n",
    "    price_cols = ['bid_price', 'ask_price', 'wap', 'reference_price', 'mid_price']\n",
    "    # 确保所有需要的列都存在\n",
    "    valid_price_cols = [col for col in price_cols if col in df_pd.columns]\n",
    "    \n",
    "    if len(valid_price_cols) >= 3:  # 至少需要3列才能计算三元组特征\n",
    "        try:\n",
    "            # 确保价格列中没有空值\n",
    "            for col in valid_price_cols:\n",
    "                if df_pd[col].isna().sum() > 0:\n",
    "                    df_pd[col] = df_pd[col].fillna(df_pd[col].median())\n",
    "            \n",
    "            triplet_features = calculate_triplet_imbalance_numba(valid_price_cols, df_pd)\n",
    "            \n",
    "            # 处理三元组特征中的空值\n",
    "            for col in triplet_features.columns:\n",
    "                if triplet_features[col].isna().sum() > 0:\n",
    "                    triplet_features[col] = triplet_features[col].fillna(0)\n",
    "            \n",
    "            # 将三元组特征合并到主数据框\n",
    "            df_pd = pd.concat([df_pd, triplet_features], axis=1)\n",
    "            print(f\"成功添加 {triplet_features.shape[1]} 个三元组特征\")\n",
    "        except Exception as e:\n",
    "            print(f\"计算三元组特征时出错: {e}\")\n",
    "    else:\n",
    "        print(f\"价格列不足，无法计算三元组特征。找到的有效列: {valid_price_cols}\")\n",
    "    \n",
    "    # 10. 计算全局特征并合并\n",
    "    try:\n",
    "        global_features = compute_global_features(pl.from_pandas(df_pd))  # 使用修复版的函数\n",
    "        global_features_pd = global_features.to_pandas()\n",
    "        \n",
    "        # 合并全局特征\n",
    "        df_pd = pd.merge(df_pd, global_features_pd, on='stock_id', how='left')\n",
    "        print(f\"成功添加全局特征，当前特征总数: {len(df_pd.columns)}\")\n",
    "    except Exception as e:\n",
    "        print(f\"计算全局特征时出错: {e}\")\n",
    "    \n",
    "    # 11. 最终空值检查和处理\n",
    "    print(\"进行最终空值检查...\")\n",
    "    \n",
    "    # 计算每列的空值数量和比例\n",
    "    na_summary = df_pd.isna().sum()\n",
    "    na_summary = na_summary[na_summary > 0]\n",
    "    \n",
    "    if not na_summary.empty:\n",
    "        na_pct = na_summary / len(df_pd) * 100\n",
    "        print(f\"发现 {len(na_summary)} 列仍然包含空值:\")\n",
    "        for col, count in na_summary.items():\n",
    "            print(f\"  - {col}: {count} 空值 ({na_pct[col]:.2f}%)\")\n",
    "        \n",
    "        print(\"进行最终空值处理...\")\n",
    "        # 处理剩余的空值\n",
    "        for col in na_summary.index:\n",
    "            if pd.api.types.is_numeric_dtype(df_pd[col]):\n",
    "                # 使用0填充数值列\n",
    "                df_pd[col] = df_pd[col].fillna(0)\n",
    "            else:\n",
    "                # 使用\"unknown\"填充非数值列\n",
    "                df_pd[col] = df_pd[col].fillna(\"unknown\")\n",
    "    else:\n",
    "        print(\"没有发现空值，无需进行最终处理\")\n",
    "    \n",
    "    # 12. 检查并处理异常值、无穷值\n",
    "    print(\"最终安全检查...\")\n",
    "    # 清理无穷值\n",
    "    for col in df_pd.select_dtypes(include=['float', 'int']).columns:\n",
    "        mask = np.isinf(df_pd[col])\n",
    "        if mask.any():\n",
    "            print(f\"列 '{col}' 中有 {mask.sum()} 个无穷值，替换为0\")\n",
    "            df_pd.loc[mask, col] = 0\n",
    "    \n",
    "    print(f\"特征工程完成。最终特征数量: {len(df_pd.columns)}\")\n",
    "    return pl.from_pandas(df_pd)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f667873-a1b3-42c1-992f-d4e7e2ba255e",
   "metadata": {},
   "source": [
    "特征选择模块 (feature_selection.py)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "89f0438a-6482-420e-b6db-208ffa9c5eea",
   "metadata": {},
   "outputs": [],
   "source": [
    "def lgb_feature_selection(X_train, y_train, X_val, y_val, importance_threshold=0.01, \n",
    "                         num_boost_round=100, early_stopping_rounds=20):\n",
    "    \"\"\"使用LightGBM进行特征选择（GPU加速版）\"\"\"\n",
    "    print(\"执行LightGBM特征选择（GPU加速）...\")\n",
    "    \n",
    "    # 添加GPU相关参数\n",
    "    params = {\n",
    "        'objective': 'regression',\n",
    "        'metric': 'mae',\n",
    "        'learning_rate': 0.1,\n",
    "        'num_leaves': 31,\n",
    "        'max_depth': 6,\n",
    "        'feature_fraction': 0.8,\n",
    "        'bagging_fraction': 0.8,\n",
    "        'verbosity': -1,\n",
    "        'seed': 42,\n",
    "        # GPU加速参数\n",
    "        'device': 'gpu',           # 使用GPU\n",
    "        'gpu_platform_id': 0,      # 平台ID，通常为0\n",
    "        'gpu_device_id': 0,        # GPU设备ID，如果有多个GPU，可以选择\n",
    "        'gpu_use_dp': False,       # 设置为True使用双精度，False使用单精度\n",
    "    }\n",
    "    \n",
    "    train_set = lgb.Dataset(X_train, label=y_train)\n",
    "    val_set = lgb.Dataset(X_val, label=y_val)\n",
    "    \n",
    "    # 训练模型\n",
    "    model = lgb.train(\n",
    "        params, train_set,\n",
    "        num_boost_round=num_boost_round,\n",
    "        valid_sets=[val_set],\n",
    "        early_stopping_rounds=early_stopping_rounds,\n",
    "        verbose_eval=20  # 每20次迭代输出一次信息\n",
    "    )\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    importances = model.feature_importance(importance_type='gain')\n",
    "    feature_importance_df = pd.DataFrame({\n",
    "        'Feature': X_train.columns,\n",
    "        'Importance': importances\n",
    "    }).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    total_importance = feature_importance_df['Importance'].sum()\n",
    "    feature_importance_df['Importance_Normalized'] = feature_importance_df['Importance'] / total_importance\n",
    "    \n",
    "    # 特征选择策略\n",
    "    # 1. 基于阈值的主要特征\n",
    "    threshold_features = feature_importance_df[\n",
    "        feature_importance_df['Importance_Normalized'] >= importance_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 2. 确保至少包含前N个特征\n",
    "    min_features = 20\n",
    "    top_features = feature_importance_df.head(min_features)['Feature'].tolist()\n",
    "    \n",
    "    # 合并两种方法的特征\n",
    "    important_features = list(set(threshold_features + top_features))\n",
    "    \n",
    "    print(f\"LightGBM特征选择: 从{len(X_train.columns)}个特征中选择了{len(important_features)}个\")\n",
    "    \n",
    "    # 评估模型性能\n",
    "    y_pred = model.predict(X_val)\n",
    "    mae = mean_absolute_error(y_val, y_pred)\n",
    "    print(f\"LightGBM在验证集上的MAE: {mae:.5f}\")\n",
    "    \n",
    "    # 返回筛选后的数据集\n",
    "    X_train_selected = X_train[important_features]\n",
    "    X_val_selected = X_val[important_features]\n",
    "    \n",
    "    return X_train_selected, X_val_selected, important_features, feature_importance_df, model\n",
    "# ======================== XGBoost特征选择 ========================\n",
    "def xgb_feature_selection(X_train, y_train, X_val=None, y_val=None, importance_threshold=0.01, \n",
    "                         num_boost_round=100, early_stopping_rounds=20):\n",
    "    \"\"\"使用XGBoost进行特征选择\"\"\"\n",
    "    print(\"执行XGBoost特征选择...\")\n",
    "    \n",
    "    # 标准化数据（XGBoost受益于特征标准化）\n",
    "    scaler = StandardScaler()\n",
    "    X_train_scaled = pd.DataFrame(\n",
    "        scaler.fit_transform(X_train),\n",
    "        columns=X_train.columns\n",
    "    )\n",
    "    \n",
    "    if X_val is not None and y_val is not None:\n",
    "        X_val_scaled = pd.DataFrame(\n",
    "            scaler.transform(X_val),\n",
    "            columns=X_val.columns\n",
    "        )\n",
    "        # 创建DMatrix对象 - 使用正确的标签\n",
    "        dtrain = xgb.DMatrix(X_train_scaled, label=y_train)\n",
    "        dval = xgb.DMatrix(X_val_scaled, label=y_val)  # 修改这里：使用y_val而不是y_train\n",
    "        \n",
    "        # XGBoost参数 - 适合特征选择的轻量配置\n",
    "        params = {\n",
    "            'objective': 'reg:squarederror',\n",
    "            'eval_metric': 'mae',\n",
    "            'eta': 0.1,\n",
    "            'max_depth': 6,\n",
    "            'subsample': 0.8,\n",
    "            'colsample_bytree': 0.8,\n",
    "            'min_child_weight': 1,\n",
    "            'tree_method': 'hist',  # 快速直方图算法\n",
    "            'seed': 42\n",
    "        }\n",
    "        \n",
    "        # 训练模型\n",
    "        watchlist = [(dtrain, 'train'), (dval, 'validation')]\n",
    "        xgb_model = xgb.train(\n",
    "            params, \n",
    "            dtrain, \n",
    "            num_boost_round=num_boost_round,\n",
    "            evals=watchlist,\n",
    "            early_stopping_rounds=early_stopping_rounds,\n",
    "            verbose_eval=20\n",
    "        )\n",
    "    else:\n",
    "        # 无验证集情况下的简化训练\n",
    "        xgb_model = xgb.XGBRegressor(\n",
    "            objective='reg:squarederror',\n",
    "            eval_metric='mae',\n",
    "            learning_rate=0.1,\n",
    "            max_depth=6,\n",
    "            subsample=0.8,\n",
    "            colsample_bytree=0.8,\n",
    "            min_child_weight=1,\n",
    "            tree_method='hist',\n",
    "            random_state=42,\n",
    "            n_estimators=num_boost_round\n",
    "        )\n",
    "        xgb_model.fit(X_train_scaled, y_train)\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    if hasattr(xgb_model, 'get_score'):\n",
    "        # xgb.train()返回的模型\n",
    "        importances = xgb_model.get_score(importance_type='gain')\n",
    "        # 处理可能缺失的特征\n",
    "        for feat in X_train.columns:\n",
    "            if feat not in importances:\n",
    "                importances[feat] = 0\n",
    "        feature_importance_df = pd.DataFrame({\n",
    "            'Feature': list(importances.keys()),\n",
    "            'Importance': list(importances.values())\n",
    "        })\n",
    "    else:\n",
    "        # XGBRegressor返回的模型\n",
    "        importances = xgb_model.feature_importances_\n",
    "        feature_importance_df = pd.DataFrame({\n",
    "            'Feature': X_train.columns,\n",
    "            'Importance': importances\n",
    "        })\n",
    "    \n",
    "    # 排序特征\n",
    "    feature_importance_df = feature_importance_df.sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    total_importance = feature_importance_df['Importance'].sum()\n",
    "    feature_importance_df['Importance_Normalized'] = feature_importance_df['Importance'] / total_importance\n",
    "    \n",
    "    # 增强版特征选择逻辑\n",
    "    # 1. 基于阈值的主要特征\n",
    "    threshold_features = feature_importance_df[\n",
    "        feature_importance_df['Importance_Normalized'] >= importance_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 2. 确保至少包含前N个特征（即使它们低于阈值）\n",
    "    min_features = 20  # 至少包含前20个特征\n",
    "    top_features = feature_importance_df.head(min_features)['Feature'].tolist()\n",
    "    \n",
    "    # 合并两种选择方法的特征\n",
    "    important_features = list(set(threshold_features + top_features))\n",
    "    \n",
    "    print(f\"XGBoost特征选择: 从{len(X_train.columns)}个特征中选择了{len(important_features)}个\")\n",
    "    \n",
    "    # 返回筛选后的数据集\n",
    "    X_train_selected = X_train[important_features]\n",
    "    X_val_selected = X_val[important_features] if X_val is not None else None\n",
    "    \n",
    "    return X_train_selected, X_val_selected, important_features, feature_importance_df, xgb_model\n",
    "\n",
    "\n",
    "# ======================== CatBoost特征选择 ========================\n",
    "def catboost_feature_selection(X_train, y_train, X_val=None, y_val=None, categorical_features=None,\n",
    "                              importance_threshold=0.01, iterations=100, early_stopping_rounds=20):\n",
    "    \"\"\"使用CatBoost进行特征选择（支持类别型特征的优化）\"\"\"\n",
    "    print(\"执行CatBoost特征选择...\")\n",
    "    \n",
    "    # 识别分类特征（如果未提供）\n",
    "    if categorical_features is None:\n",
    "        categorical_features = []\n",
    "        for col in X_train.columns:\n",
    "            if X_train[col].dtype == 'category' or X_train[col].dtype == 'object':\n",
    "                categorical_features.append(col)\n",
    "    \n",
    "    # CatBoost参数 - 适合特征选择的轻量配置\n",
    "    params = {\n",
    "        'loss_function': 'MAE',\n",
    "        'iterations': iterations,\n",
    "        'learning_rate': 0.1,\n",
    "        'depth': 6,\n",
    "        'l2_leaf_reg': 3,\n",
    "        'random_seed': 42,\n",
    "        'logging_level': 'Silent',\n",
    "        'allow_writing_files': False\n",
    "    }\n",
    "    \n",
    "    # 创建CatBoost模型\n",
    "    model = CatBoostRegressor(**params)\n",
    "    \n",
    "    # 训练模型\n",
    "    if X_val is not None and y_val is not None:\n",
    "        model.fit(\n",
    "            X_train, y_train,\n",
    "            cat_features=categorical_features,\n",
    "            eval_set=(X_val, y_val),\n",
    "            early_stopping_rounds=early_stopping_rounds,\n",
    "            verbose=20\n",
    "        )\n",
    "    else:\n",
    "        model.fit(\n",
    "            X_train, y_train,\n",
    "            cat_features=categorical_features,\n",
    "            verbose=20\n",
    "        )\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    importances = model.get_feature_importance()\n",
    "    feature_importance_df = pd.DataFrame({\n",
    "        'Feature': X_train.columns,\n",
    "        'Importance': importances\n",
    "    }).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    total_importance = feature_importance_df['Importance'].sum()\n",
    "    feature_importance_df['Importance_Normalized'] = feature_importance_df['Importance'] / total_importance\n",
    "    \n",
    "    # 多层次特征选择策略\n",
    "    # 1. 基于阈值的主要特征\n",
    "    threshold_features = feature_importance_df[\n",
    "        feature_importance_df['Importance_Normalized'] >= importance_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 2. 确保包含所有分类特征（CatBoost对分类特征处理很有优势）\n",
    "    category_features = [f for f in categorical_features if f in X_train.columns]\n",
    "    \n",
    "    # 3. 确保至少包含前N个特征\n",
    "    min_features = 20\n",
    "    top_features = feature_importance_df.head(min_features)['Feature'].tolist()\n",
    "    \n",
    "    # 合并三种方法的特征\n",
    "    important_features = list(set(threshold_features + category_features + top_features))\n",
    "    \n",
    "    print(f\"CatBoost特征选择: 从{len(X_train.columns)}个特征中选择了{len(important_features)}个\")\n",
    "    \n",
    "    # 返回筛选后的数据集\n",
    "    X_train_selected = X_train[important_features]\n",
    "    X_val_selected = X_val[important_features] if X_val is not None else None\n",
    "    \n",
    "    return X_train_selected, X_val_selected, important_features, feature_importance_df, model\n",
    "# ======================== 集成特征选择 ========================\n",
    "def ensemble_feature_selection(X_train, y_train, X_val, y_val, \n",
    "                              categorical_features=None, n_top_features=30,\n",
    "                              output_dir=\"feature_selection_results\"):\n",
    "    \"\"\"集成LGB、XGB和CatBoost的特征选择结果，并可视化特征重要性\"\"\"\n",
    "    import matplotlib.pyplot as plt\n",
    "    import seaborn as sns\n",
    "    import os\n",
    "    import importlib\n",
    "    from matplotlib.ticker import MaxNLocator\n",
    "    \n",
    "    # 检查并安装缺失的库\n",
    "    if importlib.util.find_spec(\"matplotlib_venn\") is None:\n",
    "        print(\"Installing matplotlib-venn...\")\n",
    "        import sys\n",
    "        import subprocess\n",
    "        subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", \"matplotlib-venn\"])\n",
    "    \n",
    "    # 现在安全地导入\n",
    "    from matplotlib_venn import venn3\n",
    "    \n",
    "    # 创建输出目录\n",
    "    if not os.path.exists(output_dir):\n",
    "        os.makedirs(output_dir)\n",
    "    \n",
    "    print(\"执行集成特征选择...\")\n",
    "    \n",
    "    # 1. 通过LightGBM选择特征\n",
    "    print(\"进行LightGBM特征选择...\")\n",
    "    lgb_params = {\n",
    "        'objective': 'regression',\n",
    "        'metric': 'mae',\n",
    "        'learning_rate': 0.1,\n",
    "        'num_leaves': 31,\n",
    "        'max_depth': 6,\n",
    "        'feature_fraction': 0.8,\n",
    "        'bagging_fraction': 0.8,\n",
    "        'verbosity': -1,\n",
    "        'seed': 42\n",
    "    }\n",
    "    \n",
    "    lgb_train = lgb.Dataset(X_train, label=y_train)\n",
    "    lgb_val = lgb.Dataset(X_val, label=y_val)\n",
    "    \n",
    "    # 训练一个轻量级LightGBM模型用于特征选择\n",
    "    lgb_model = lgb.train(\n",
    "        lgb_params, lgb_train,\n",
    "        num_boost_round=100,\n",
    "        valid_sets=[lgb_val],\n",
    "    )\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    lgb_importance = pd.DataFrame({\n",
    "        'Feature': X_train.columns,\n",
    "        'Importance': lgb_model.feature_importance(importance_type='gain')\n",
    "    }).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    lgb_importance['Importance_Normalized'] = lgb_importance['Importance'] / lgb_importance['Importance'].sum()\n",
    "    \n",
    "    # 选择重要特征\n",
    "    lgb_threshold = 0.005\n",
    "    lgb_features = lgb_importance[\n",
    "        lgb_importance['Importance_Normalized'] >= lgb_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 确保至少包含前20个特征\n",
    "    lgb_top_features = lgb_importance.head(20)['Feature'].tolist()\n",
    "    lgb_features = list(set(lgb_features + lgb_top_features))\n",
    "    \n",
    "    print(f\"LightGBM特征选择: 从{len(X_train.columns)}个特征中选择了{len(lgb_features)}个\")\n",
    "    \n",
    "    # 2. 通过XGBoost选择特征\n",
    "    print(\"进行XGBoost特征选择...\")\n",
    "    # 标准化数据\n",
    "    scaler = StandardScaler()\n",
    "    X_train_scaled = pd.DataFrame(\n",
    "        scaler.fit_transform(X_train),\n",
    "        columns=X_train.columns\n",
    "    )\n",
    "    X_val_scaled = pd.DataFrame(\n",
    "        scaler.transform(X_val),\n",
    "        columns=X_val.columns\n",
    "    )\n",
    "    \n",
    "    # 创建XGBoost的DMatrix\n",
    "    dtrain = xgb.DMatrix(X_train_scaled, label=y_train)\n",
    "    dval = xgb.DMatrix(X_val_scaled, label=y_val)\n",
    "    \n",
    "    # XGBoost参数\n",
    "    xgb_params = {\n",
    "        'objective': 'reg:squarederror',\n",
    "        'eval_metric': 'mae',\n",
    "        'eta': 0.1,\n",
    "        'max_depth': 6,\n",
    "        'subsample': 0.8,\n",
    "        'colsample_bytree': 0.8,\n",
    "        'min_child_weight': 1,\n",
    "        'tree_method': 'hist',\n",
    "        'seed': 42\n",
    "    }\n",
    "    \n",
    "    # 训练模型\n",
    "    watchlist = [(dtrain, 'train'), (dval, 'validation')]\n",
    "    xgb_model = xgb.train(\n",
    "        xgb_params, \n",
    "        dtrain, \n",
    "        num_boost_round=100,\n",
    "        evals=watchlist,\n",
    "        early_stopping_rounds=20,\n",
    "        verbose_eval=20\n",
    "    )\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    xgb_importance_dict = xgb_model.get_score(importance_type='gain')\n",
    "    \n",
    "    # 处理可能缺失的特征\n",
    "    xgb_importance_list = []\n",
    "    for feat in X_train.columns:\n",
    "        if feat in xgb_importance_dict:\n",
    "            xgb_importance_list.append({\n",
    "                'Feature': feat, \n",
    "                'Importance': xgb_importance_dict[feat]\n",
    "            })\n",
    "        else:\n",
    "            xgb_importance_list.append({\n",
    "                'Feature': feat,\n",
    "                'Importance': 0\n",
    "            })\n",
    "    \n",
    "    xgb_importance = pd.DataFrame(xgb_importance_list).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    xgb_importance['Importance_Normalized'] = xgb_importance['Importance'] / (xgb_importance['Importance'].sum() + 1e-10)\n",
    "    \n",
    "    # 选择重要特征\n",
    "    xgb_threshold = 0.005\n",
    "    xgb_features = xgb_importance[\n",
    "        xgb_importance['Importance_Normalized'] >= xgb_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 确保至少包含前20个特征\n",
    "    xgb_top_features = xgb_importance.head(20)['Feature'].tolist()\n",
    "    xgb_features = list(set(xgb_features + xgb_top_features))\n",
    "    \n",
    "    print(f\"XGBoost特征选择: 从{len(X_train.columns)}个特征中选择了{len(xgb_features)}个\")\n",
    "    \n",
    "    # 3. 通过CatBoost选择特征\n",
    "    print(\"进行CatBoost特征选择...\")\n",
    "    # 识别分类特征\n",
    "    if categorical_features is None:\n",
    "        categorical_features = []\n",
    "        for col in X_train.columns:\n",
    "            if X_train[col].dtype == 'category' or X_train[col].dtype == 'object':\n",
    "                categorical_features.append(col)\n",
    "    \n",
    "    # CatBoost参数\n",
    "    cat_params = {\n",
    "        'loss_function': 'MAE',\n",
    "        'iterations': 100,\n",
    "        'learning_rate': 0.1,\n",
    "        'depth': 6,\n",
    "        'l2_leaf_reg': 3,\n",
    "        'random_seed': 42,\n",
    "        'logging_level': 'Silent',\n",
    "        'allow_writing_files': False\n",
    "    }\n",
    "    \n",
    "    # 创建CatBoost模型\n",
    "    cat_model = CatBoostRegressor(**cat_params)\n",
    "    \n",
    "    # 训练模型\n",
    "    cat_model.fit(\n",
    "        X_train, y_train,\n",
    "        cat_features=categorical_features,\n",
    "        eval_set=(X_val, y_val),\n",
    "        early_stopping_rounds=20,\n",
    "        verbose=20\n",
    "    )\n",
    "    \n",
    "    # 获取特征重要性\n",
    "    cat_importance = pd.DataFrame({\n",
    "        'Feature': X_train.columns,\n",
    "        'Importance': cat_model.get_feature_importance()\n",
    "    }).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    cat_importance['Importance_Normalized'] = cat_importance['Importance'] / (cat_importance['Importance'].sum() + 1e-10)\n",
    "    \n",
    "    # 选择重要特征\n",
    "    cat_threshold = 0.005\n",
    "    cat_features = cat_importance[\n",
    "        cat_importance['Importance_Normalized'] >= cat_threshold\n",
    "    ]['Feature'].tolist()\n",
    "    \n",
    "    # 确保包含所有分类特征和至少前20个特征\n",
    "    cat_top_features = cat_importance.head(20)['Feature'].tolist()\n",
    "    cat_category_features = [f for f in categorical_features if f in X_train.columns]\n",
    "    cat_features = list(set(cat_features + cat_top_features + cat_category_features))\n",
    "    \n",
    "    print(f\"CatBoost特征选择: 从{len(X_train.columns)}个特征中选择了{len(cat_features)}个\")\n",
    "    \n",
    "    all_features = list(set(lgb_features + xgb_features + cat_features))\n",
    "    \n",
    "    # 4. 评估各个模型在各自特征集上的性能\n",
    "    print(\"\\n评估各个特征集的性能...\")\n",
    "    \n",
    "    # 为了解决特征不匹配问题，我们重新训练轻量级模型在各自的特征子集上\n",
    "    \n",
    "    # LightGBM子集模型\n",
    "    X_train_lgb = X_train[lgb_features]\n",
    "    X_val_lgb = X_val[lgb_features]\n",
    "    lgb_train_subset = lgb.Dataset(X_train_lgb, label=y_train)\n",
    "    lgb_val_subset = lgb.Dataset(X_val_lgb, label=y_val)\n",
    "    \n",
    "    lgb_model_subset = lgb.train(\n",
    "        lgb_params, lgb_train_subset,\n",
    "        num_boost_round=100,\n",
    "        valid_sets=[lgb_val_subset],\n",
    "    )\n",
    "    \n",
    "    lgb_pred = lgb_model_subset.predict(X_val_lgb)\n",
    "    lgb_mae = mean_absolute_error(y_val, lgb_pred)\n",
    "    print(f\"LightGBM特征集性能 (MAE): {lgb_mae:.5f}, 特征数量: {X_val_lgb.shape[1]}\")\n",
    "    \n",
    "    # XGBoost子集模型\n",
    "    X_train_xgb = X_train[xgb_features]\n",
    "    X_val_xgb = X_val[xgb_features]\n",
    "    \n",
    "    # 标准化\n",
    "    X_train_xgb_scaled = pd.DataFrame(\n",
    "        scaler.fit_transform(X_train_xgb),\n",
    "        columns=X_train_xgb.columns\n",
    "    )\n",
    "    X_val_xgb_scaled = pd.DataFrame(\n",
    "        scaler.transform(X_val_xgb),\n",
    "        columns=X_val_xgb.columns\n",
    "    )\n",
    "    \n",
    "    dtrain_subset = xgb.DMatrix(X_train_xgb_scaled, label=y_train)\n",
    "    dval_subset = xgb.DMatrix(X_val_xgb_scaled, label=y_val)\n",
    "    \n",
    "    xgb_model_subset = xgb.train(\n",
    "        xgb_params, \n",
    "        dtrain_subset, \n",
    "        num_boost_round=100,\n",
    "        evals=[(dtrain_subset, 'train'), (dval_subset, 'val')],\n",
    "        early_stopping_rounds=20,\n",
    "        verbose_eval=False\n",
    "    )\n",
    "    \n",
    "    xgb_pred = xgb_model_subset.predict(dval_subset)\n",
    "    xgb_mae = mean_absolute_error(y_val, xgb_pred)\n",
    "    print(f\"XGBoost特征集性能 (MAE): {xgb_mae:.5f}, 特征数量: {X_val_xgb.shape[1]}\")\n",
    "    \n",
    "    # CatBoost子集模型\n",
    "    X_train_cat = X_train[cat_features]\n",
    "    X_val_cat = X_val[cat_features]\n",
    "    \n",
    "    # 识别子集中的分类特征\n",
    "    cat_features_subset = [f for f in categorical_features if f in cat_features]\n",
    "    \n",
    "    cat_model_subset = CatBoostRegressor(**cat_params)\n",
    "    cat_model_subset.fit(\n",
    "        X_train_cat, y_train,\n",
    "        cat_features=cat_features_subset,\n",
    "        eval_set=(X_val_cat, y_val),\n",
    "        early_stopping_rounds=20,\n",
    "        verbose=False\n",
    "    )\n",
    "    \n",
    "    cat_pred = cat_model_subset.predict(X_val_cat)\n",
    "    cat_mae = mean_absolute_error(y_val, cat_pred)\n",
    "    print(f\"CatBoost特征集性能 (MAE): {cat_mae:.5f}, 特征数量: {X_val_cat.shape[1]}\")\n",
    "\n",
    "    # 5. 特征投票系统 - 根据多个模型的共识选择特征\n",
    "    print(\"\\n执行特征投票融合...\")\n",
    "    feature_votes = {}\n",
    "    all_features = set(lgb_features) | set(xgb_features) | set(cat_features)\n",
    "    \n",
    "    for feat in all_features:\n",
    "        votes = 0\n",
    "        if feat in lgb_features:\n",
    "            votes += 1\n",
    "        if feat in xgb_features:\n",
    "            votes += 1\n",
    "        if feat in cat_features:\n",
    "            votes += 1\n",
    "        feature_votes[feat] = votes\n",
    "    \n",
    "    # 合并特征重要性得分\n",
    "    merged_importance = {}\n",
    "    for feat in all_features:\n",
    "        # 初始化分数\n",
    "        lgb_score = 0\n",
    "        xgb_score = 0\n",
    "        cat_score = 0\n",
    "        \n",
    "        # 获取每个模型的重要性分数\n",
    "        if feat in lgb_features:\n",
    "            lgb_row = lgb_importance[lgb_importance['Feature'] == feat]\n",
    "            if not lgb_row.empty:\n",
    "                lgb_score = lgb_row['Importance_Normalized'].values[0]\n",
    "        \n",
    "        if feat in xgb_features:\n",
    "            xgb_row = xgb_importance[xgb_importance['Feature'] == feat]\n",
    "            if not xgb_row.empty:\n",
    "                xgb_score = xgb_row['Importance_Normalized'].values[0]\n",
    "        \n",
    "        if feat in cat_features:\n",
    "            cat_row = cat_importance[cat_importance['Feature'] == feat]\n",
    "            if not cat_row.empty:\n",
    "                cat_score = cat_row['Importance_Normalized'].values[0]\n",
    "        \n",
    "        # 基于模型性能加权平均 (MAE越低权重越高)\n",
    "        total_inv_mae = (1/lgb_mae) + (1/xgb_mae) + (1/cat_mae)\n",
    "        lgb_weight = (1/lgb_mae) / total_inv_mae\n",
    "        xgb_weight = (1/xgb_mae) / total_inv_mae\n",
    "        cat_weight = (1/cat_mae) / total_inv_mae\n",
    "        \n",
    "        merged_importance[feat] = (\n",
    "            lgb_weight * lgb_score + \n",
    "            xgb_weight * xgb_score + \n",
    "            cat_weight * cat_score\n",
    "        )\n",
    "    \n",
    "    # 创建合并的特征重要性DataFrame\n",
    "    ensemble_importance_df = pd.DataFrame({\n",
    "        'Feature': list(merged_importance.keys()),\n",
    "        'Importance': list(merged_importance.values()),\n",
    "        'Votes': [feature_votes[f] for f in merged_importance.keys()]\n",
    "    }).sort_values(by='Importance', ascending=False)\n",
    "    \n",
    "    # 特征选择策略:\n",
    "    # 1. 选择至少被两个模型选中的特征\n",
    "    voted_features = [f for f, v in feature_votes.items() if v >= 2]\n",
    "    \n",
    "    # 2. 添加top N个重要性特征(即使只被一个模型选中)\n",
    "    top_features = ensemble_importance_df.head(n_top_features)['Feature'].tolist()\n",
    "    \n",
    "    # 3. 确保包含所有分类特征\n",
    "    if categorical_features is not None:\n",
    "        cat_cols = [f for f in categorical_features if f in X_train.columns]\n",
    "    else:\n",
    "        cat_cols = []\n",
    "    \n",
    "    # 合并特征集\n",
    "    ensemble_features = list(set(voted_features + top_features + cat_cols))\n",
    "    \n",
    "    print(f\"集成特征选择: 最终选择了{len(ensemble_features)}个特征\")\n",
    "    print(f\"- 至少两个模型选择的特征: {len(voted_features)}\")\n",
    "    print(f\"- Top {n_top_features}特征中独有的: {len(set(top_features) - set(voted_features))}\")\n",
    "    print(f\"- 添加的分类特征: {len(set(cat_cols) - set(voted_features) - set(top_features))}\")\n",
    "    \n",
    "    # 返回筛选后的数据集\n",
    "    X_train_ensemble = X_train[ensemble_features]\n",
    "    X_val_ensemble = X_val[ensemble_features]\n",
    "    \n",
    "    # 组织返回结果\n",
    "    models_dict = {\n",
    "        'lgb': lgb_model_subset,  # 使用子集模型\n",
    "        'xgb': xgb_model_subset,  # 使用子集模型\n",
    "        'cat': cat_model_subset,  # 使用子集模型\n",
    "        'importances': {\n",
    "            'lgb': lgb_importance,\n",
    "            'xgb': xgb_importance,\n",
    "            'cat': cat_importance,\n",
    "            'ensemble': ensemble_importance_df\n",
    "        },\n",
    "        'performances': {\n",
    "            'lgb': lgb_mae,\n",
    "            'xgb': xgb_mae,\n",
    "            'cat': cat_mae\n",
    "        }\n",
    "    }\n",
    "    \n",
    "    # ===== 新增部分：特征重要性可视化 =====\n",
    "    print(\"\\n生成特征重要性可视化图表...\")\n",
    "    \n",
    "    # 设置可视化样式\n",
    "    sns.set(style=\"whitegrid\")\n",
    "    plt.rcParams['figure.figsize'] = (12, 10)\n",
    "    plt.rcParams['font.size'] = 12\n",
    "    \n",
    "    # 1. 可视化LightGBM特征重要性\n",
    "    def plot_feature_importance(importance_df, title, top_n=20, model_name=\"model\"):\n",
    "        plt.figure(figsize=(12, 10))\n",
    "        \n",
    "        # 获取前N个特征\n",
    "        top_features = importance_df.head(top_n)\n",
    "        \n",
    "        # 创建条形图\n",
    "        ax = sns.barplot(\n",
    "            x=\"Importance_Normalized\", \n",
    "            y=\"Feature\", \n",
    "            data=top_features,\n",
    "            palette=\"viridis\"\n",
    "        )\n",
    "        \n",
    "        # 设置图表样式\n",
    "        ax.set_title(f\"{title} - 前{top_n}个特征\", fontsize=16)\n",
    "        ax.set_xlabel(\"归一化重要性\", fontsize=14)\n",
    "        ax.set_ylabel(\"特征名称\", fontsize=14)\n",
    "        \n",
    "        # 添加网格\n",
    "        ax.grid(True, linestyle='--', alpha=0.7)\n",
    "        \n",
    "        # 在条形上添加具体数值\n",
    "        for i, v in enumerate(top_features['Importance_Normalized']):\n",
    "            ax.text(v + 0.002, i, f\"{v:.4f}\", va='center')\n",
    "        \n",
    "        # 保存图表\n",
    "        plt.tight_layout()\n",
    "        plt.savefig(f\"{output_dir}/{model_name}_feature_importance.png\", dpi=300, bbox_inches='tight')\n",
    "        plt.close()\n",
    "    \n",
    "    # 分别可视化三个模型的特征重要性\n",
    "    plot_feature_importance(lgb_importance, \"LightGBM模型特征重要性\", model_name=\"lightgbm\")\n",
    "    plot_feature_importance(xgb_importance, \"XGBoost模型特征重要性\", model_name=\"xgboost\")\n",
    "    plot_feature_importance(cat_importance, \"CatBoost模型特征重要性\", model_name=\"catboost\")\n",
    "    \n",
    "    # 2. 可视化融合后的特征重要性\n",
    "    plt.figure(figsize=(12, 12))\n",
    "    \n",
    "    # 获取前30个特征\n",
    "    top_ensemble_features = ensemble_importance_df.head(30)\n",
    "    \n",
    "    # 创建融合特征重要性条形图\n",
    "    ax = sns.barplot(\n",
    "        x=\"Importance\", \n",
    "        y=\"Feature\", \n",
    "        data=top_ensemble_features,\n",
    "        palette=\"viridis\",\n",
    "        hue=\"Votes\",  # 使用投票数作为颜色区分\n",
    "        dodge=False  # 不要分开绘制，保持单一条形图\n",
    "    )\n",
    "    \n",
    "    # 设置图表样式\n",
    "    ax.set_title(f\"融合模型特征重要性 - 前30个特征\", fontsize=16)\n",
    "    ax.set_xlabel(\"加权重要性得分\", fontsize=14)\n",
    "    ax.set_ylabel(\"特征名称\", fontsize=14)\n",
    "    \n",
    "    # 添加网格\n",
    "    ax.grid(True, linestyle='--', alpha=0.7)\n",
    "    \n",
    "    # 添加彩色图例\n",
    "    plt.legend(title=\"投票数\", loc=\"lower right\")\n",
    "    \n",
    "    # 保存图表\n",
    "    plt.tight_layout()\n",
    "    plt.savefig(f\"{output_dir}/ensemble_feature_importance.png\", dpi=300, bbox_inches='tight')\n",
    "    plt.close()\n",
    "    \n",
    "    # 3. 特征选择比较(模型间特征集重叠)\n",
    "    plt.figure(figsize=(10, 8))\n",
    "    \n",
    "    # 创建维恩图数据\n",
    "    from matplotlib_venn import venn3\n",
    "    \n",
    "    # 计算集合\n",
    "    lgb_set = set(lgb_features)\n",
    "    xgb_set = set(xgb_features)\n",
    "    cat_set = set(cat_features)\n",
    "    \n",
    "    # 绘制维恩图\n",
    "    venn = venn3(\n",
    "        [lgb_set, xgb_set, cat_set],\n",
    "        set_labels=('LightGBM', 'XGBoost', 'CatBoost')\n",
    "    )\n",
    "    \n",
    "    # 设置图表标题\n",
    "    plt.title('三个模型间特征选择重叠比较', fontsize=16)\n",
    "    \n",
    "    # 保存图表\n",
    "    plt.savefig(f\"{output_dir}/feature_selection_venn.png\", dpi=300, bbox_inches='tight')\n",
    "    plt.close()\n",
    "    \n",
    "    # 4. 最终选择特征的组成\n",
    "    plt.figure(figsize=(10, 6))\n",
    "    \n",
    "    # 计算各组特征数量\n",
    "    voted_only = set(voted_features)\n",
    "    top_only = set(top_features) - voted_only\n",
    "    cat_only = set(cat_cols) - voted_only - top_only\n",
    "    \n",
    "    # 创建饼图数据\n",
    "    sizes = [len(voted_only), len(top_only), len(cat_only)]\n",
    "    labels = [\n",
    "        f'投票选出特征 ({len(voted_only)})',\n",
    "        f'额外Top特征 ({len(top_only)})',\n",
    "        f'额外分类特征 ({len(cat_only)})'\n",
    "    ]\n",
    "    colors = ['#ff9999', '#66b3ff', '#99ff99']\n",
    "    explode = (0.1, 0, 0)  # 突出第一部分\n",
    "    \n",
    "    # 创建饼图\n",
    "    plt.pie(\n",
    "        sizes, explode=explode, labels=labels, colors=colors,\n",
    "        autopct='%1.1f%%', shadow=True, startangle=90\n",
    "    )\n",
    "    plt.axis('equal')  # 保持圆形\n",
    "    \n",
    "    # 设置标题\n",
    "    plt.title('最终选择特征的组成', fontsize=16)\n",
    "    \n",
    "    # 保存图表\n",
    "    plt.savefig(f\"{output_dir}/final_feature_composition.png\", dpi=300, bbox_inches='tight')\n",
    "    plt.close()\n",
    "    \n",
    "    # 5. 将最终选择的特征保存到文件\n",
    "    ensemble_features_sorted = sorted(ensemble_features)\n",
    "    with open(f\"{output_dir}/selected_features.txt\", \"w\") as f:\n",
    "        for feature in ensemble_features_sorted:\n",
    "            f.write(f\"{feature}\\n\")\n",
    "    \n",
    "    # 6. 保存详细的特征重要性信息\n",
    "    # 为所有特征添加详细的选择信息\n",
    "    ensemble_importance_df['In_LightGBM'] = ensemble_importance_df['Feature'].isin(lgb_features)\n",
    "    ensemble_importance_df['In_XGBoost'] = ensemble_importance_df['Feature'].isin(xgb_features)\n",
    "    ensemble_importance_df['In_CatBoost'] = ensemble_importance_df['Feature'].isin(cat_features)\n",
    "    ensemble_importance_df['Selected'] = ensemble_importance_df['Feature'].isin(ensemble_features)\n",
    "    \n",
    "    # 保存详细信息到CSV\n",
    "    ensemble_importance_df.to_csv(f\"{output_dir}/feature_importance_details.csv\", index=False)\n",
    "    \n",
    "\n",
    "    print(f\"\\n所有特征可视化和报告已保存到 {output_dir} 目录\")\n",
    "    \n",
    "    return X_train_ensemble, X_val_ensemble, ensemble_features, ensemble_importance_df, models_dict\n",
    "\n",
    "\n",
    "def identify_redundant_features(X, importance_df, correlation_threshold=0.95, top_n=None):\n",
    "    \"\"\"基于相关性和重要性识别冗余特征\"\"\"\n",
    "    print(\"识别冗余特征...\")\n",
    "    \n",
    "    # 如果指定了top_n，则只分析前N个最重要的特征\n",
    "    if top_n is not None:\n",
    "        top_features = importance_df.head(top_n)['Feature'].tolist()\n",
    "        X_subset = X[top_features]\n",
    "    else:\n",
    "        X_subset = X\n",
    "    \n",
    "    # 计算特征间相关性矩阵\n",
    "    corr_matrix = X_subset.corr().abs()\n",
    "    \n",
    "    # 创建上三角矩阵\n",
    "    upper_tri = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(bool))\n",
    "    \n",
    "    # 查找高相关特征对\n",
    "    redundant_pairs = []\n",
    "    for col in upper_tri.columns:\n",
    "        # 获取与当前列高度相关的特征\n",
    "        high_corr_vars = upper_tri.index[upper_tri[col] > correlation_threshold].tolist()\n",
    "        \n",
    "        if high_corr_vars:\n",
    "            for var in high_corr_vars:\n",
    "                if importance_df[importance_df['Feature'] == col]['Importance'].values[0] >= \\\n",
    "                   importance_df[importance_df['Feature'] == var]['Importance'].values[0]:\n",
    "                    # 当前特征更重要，建议保留当前特征\n",
    "                    redundant_pairs.append({\n",
    "                        'keep': col,\n",
    "                        'drop': var,\n",
    "                        'correlation': upper_tri.loc[var, col],\n",
    "                        'keep_importance': importance_df[importance_df['Feature'] == col]['Importance'].values[0],\n",
    "                        'drop_importance': importance_df[importance_df['Feature'] == var]['Importance'].values[0]\n",
    "                    })\n",
    "                else:\n",
    "                    # 另一个特征更重要，建议保留另一个特征\n",
    "                    redundant_pairs.append({\n",
    "                        'keep': var,\n",
    "                        'drop': col,\n",
    "                        'correlation': upper_tri.loc[var, col],\n",
    "                        'keep_importance': importance_df[importance_df['Feature'] == var]['Importance'].values[0],\n",
    "                        'drop_importance': importance_df[importance_df['Feature'] == col]['Importance'].values[0]\n",
    "                    })\n",
    "    \n",
    "    # 创建冗余特征对数据框\n",
    "    redundant_df = pd.DataFrame(redundant_pairs).sort_values('correlation', ascending=False)\n",
    "    \n",
    "    # 生成建议保留和删除的特征列表（消除循环依赖）\n",
    "    features_to_drop = set()\n",
    "    for _, row in redundant_df.iterrows():\n",
    "        if row['drop'] not in features_to_drop:\n",
    "            features_to_drop.add(row['drop'])\n",
    "    \n",
    "    features_to_keep = set(X_subset.columns) - features_to_drop\n",
    "    \n",
    "    print(f\"发现{len(redundant_pairs)}对高相关特征对\")\n",
    "    print(f\"建议保留{len(features_to_keep)}个特征，删除{len(features_to_drop)}个冗余特征\")\n",
    "    \n",
    "    return redundant_df, list(features_to_keep), list(features_to_drop)\n",
    "\n",
    "def analyze_feature_importance(model, feature_names, top_n=30):\n",
    "    \"\"\"分析特征重要性并按类别分组\"\"\"\n",
    "    if hasattr(model, 'feature_importance'):\n",
    "        # LightGBM模型\n",
    "        importance = model.feature_importance(importance_type='gain')\n",
    "    elif hasattr(model, 'feature_importances_'):\n",
    "        # XGBoost或CatBoost模型\n",
    "        importance = model.feature_importances_\n",
    "    else:\n",
    "        raise ValueError(\"Model type not supported for feature importance analysis\")\n",
    "    \n",
    "    # 创建特征重要性DataFrame\n",
    "    importance_df = pd.DataFrame({\n",
    "        'Feature': feature_names,\n",
    "        'Importance': importance\n",
    "    }).sort_values('Importance', ascending=False)\n",
    "    \n",
    "    # 标准化重要性分数\n",
    "    importance_df['Importance_Normalized'] = importance_df['Importance'] / importance_df['Importance'].sum()\n",
    "    \n",
    "    # 提取特征类别（基于特征名前缀）\n",
    "    importance_df['Category'] = importance_df['Feature'].apply(\n",
    "        lambda x: x.split('_')[0] if '_' in x else 'other'\n",
    "    )\n",
    "    \n",
    "    # 按类别分组计算总重要性\n",
    "    category_importance = importance_df.groupby('Category')['Importance_Normalized'].sum().sort_values(ascending=False)\n",
    "    \n",
    "    return importance_df.head(top_n), category_importance\n",
    "# ======================== 特征重要性可视化 ========================\n",
    "def visualize_feature_importance_comparison(importance_dict, top_n=20, save_path=None):\n",
    "    \"\"\"比较不同算法的特征重要性可视化\"\"\"\n",
    "    print(\"可视化不同算法的特征重要性比较...\")\n",
    "    \n",
    "    # 获取每个算法的前N个特征\n",
    "    top_features = {}\n",
    "    all_top_features = set()\n",
    "    \n",
    "    for model_name, imp_df in importance_dict.items():\n",
    "        if model_name != 'ensemble':  # 先不处理集成结果\n",
    "            top_model_features = imp_df.sort_values('Importance', ascending=False).head(top_n)['Feature'].tolist()\n",
    "            top_features[model_name] = top_model_features\n",
    "            all_top_features.update(top_model_features)\n",
    "    \n",
    "    # 将ensemble放在最后\n",
    "    if 'ensemble' in importance_dict:\n",
    "        top_model_features = importance_dict['ensemble'].sort_values('Importance', ascending=False).head(top_n)['Feature'].tolist()\n",
    "        top_features['ensemble'] = top_model_features\n",
    "        all_top_features.update(top_model_features)\n",
    "    \n",
    "    # 创建综合特征重要性矩阵\n",
    "    all_top_features = list(all_top_features)\n",
    "    feature_matrix = pd.DataFrame(0, index=all_top_features, columns=importance_dict.keys())\n",
    "    \n",
    "    # 填充特征重要性\n",
    "    for model_name, imp_df in importance_dict.items():\n",
    "        # 确保数据框中存在'Feature'和'Importance_Normalized'列\n",
    "        if 'Importance_Normalized' not in imp_df.columns and 'Importance' in imp_df.columns:\n",
    "            # 如果没有标准化列，但有Importance列，则创建标准化列\n",
    "            imp_df['Importance_Normalized'] = imp_df['Importance'] / imp_df['Importance'].sum()\n",
    "        \n",
    "        for idx, row in imp_df.iterrows():\n",
    "            if row['Feature'] in all_top_features:\n",
    "                feature_matrix.loc[row['Feature'], model_name] = row.get('Importance_Normalized', 0)\n",
    "    \n",
    "    # 按总重要性对特征排序\n",
    "    feature_matrix['total'] = feature_matrix.sum(axis=1)\n",
    "    feature_matrix = feature_matrix.sort_values('total', ascending=False).drop('total', axis=1)\n",
    "    \n",
    "    # 取前N个特征\n",
    "    feature_matrix = feature_matrix.head(top_n)\n",
    "    \n",
    "    # 创建热图\n",
    "    plt.figure(figsize=(12, 10))\n",
    "    sns.heatmap(feature_matrix, annot=True, fmt='.3f', cmap='YlGnBu')\n",
    "    plt.title('Feature Importance Comparison Across Models')\n",
    "    plt.tight_layout()\n",
    "    \n",
    "    if save_path:\n",
    "        plt.savefig(save_path, dpi=300, bbox_inches='tight')\n",
    "        print(f\"特征重要性比较热图已保存至 {save_path}\")\n",
    "    \n",
    "    plt.show()\n",
    "    \n",
    "    # 创建条形图比较\n",
    "    n_models = len(importance_dict)\n",
    "    fig, axes = plt.subplots(1, n_models, figsize=(n_models*6, 8), sharey=True)\n",
    "    \n",
    "    for i, (model_name, imp_df) in enumerate(importance_dict.items()):\n",
    "        top_n_features = imp_df.sort_values('Importance', ascending=False).head(10)\n",
    "        sns.barplot(x='Importance', y='Feature', data=top_n_features, ax=axes[i])\n",
    "        axes[i].set_title(f'{model_name} Top 10 Features')\n",
    "        \n",
    "        # 只在第一个子图上显示y轴标签\n",
    "        if i > 0:\n",
    "            axes[i].set_ylabel('')\n",
    "    \n",
    "    plt.tight_layout()\n",
    "    \n",
    "    comparison_save_path = save_path.replace('.png', '_comparison.png') if save_path else None\n",
    "    if comparison_save_path:\n",
    "        plt.savefig(comparison_save_path, dpi=300, bbox_inches='tight')\n",
    "        print(f\"特征重要性比较条形图已保存至 {comparison_save_path}\")\n",
    "    \n",
    "    plt.show()\n",
    "    \n",
    "    return feature_matrix\n",
    "\n",
    "\n",
    "# ======================== 特征相关性辅助函数 ========================\n",
    "def identify_redundant_features(X, importance_df, correlation_threshold=0.95, top_n=None):\n",
    "    \"\"\"基于相关性和重要性识别冗余特征\"\"\"\n",
    "    print(\"识别冗余特征...\")\n",
    "    \n",
    "    # 如果指定了top_n，则只分析前N个最重要的特征\n",
    "    if top_n is not None:\n",
    "        top_features = importance_df.head(top_n)['Feature'].tolist()\n",
    "        X_subset = X[top_features]\n",
    "    else:\n",
    "        X_subset = X\n",
    "    \n",
    "    # 计算特征间相关性矩阵\n",
    "    corr_matrix = X_subset.corr().abs()\n",
    "    \n",
    "    # 创建上三角矩阵\n",
    "    upper_tri = corr_matrix.where(np.triu(np.ones(corr_matrix.shape), k=1).astype(bool))\n",
    "    \n",
    "    # 查找高相关特征对\n",
    "    redundant_pairs = []\n",
    "    for col in upper_tri.columns:\n",
    "        # 获取与当前列高度相关的特征\n",
    "        high_corr_vars = upper_tri.index[upper_tri[col] > correlation_threshold].tolist()\n",
    "        \n",
    "        if high_corr_vars:\n",
    "            for var in high_corr_vars:\n",
    "                if importance_df[importance_df['Feature'] == col]['Importance'].values[0] >= \\\n",
    "                   importance_df[importance_df['Feature'] == var]['Importance'].values[0]:\n",
    "                    # 当前特征更重要，建议保留当前特征\n",
    "                    redundant_pairs.append({\n",
    "                        'keep': col,\n",
    "                        'drop': var,\n",
    "                        'correlation': upper_tri.loc[var, col],\n",
    "                        'keep_importance': importance_df[importance_df['Feature'] == col]['Importance'].values[0],\n",
    "                        'drop_importance': importance_df[importance_df['Feature'] == var]['Importance'].values[0]\n",
    "                    })\n",
    "                else:\n",
    "                    # 另一个特征更重要，建议保留另一个特征\n",
    "                    redundant_pairs.append({\n",
    "                        'keep': var,\n",
    "                        'drop': col,\n",
    "                        'correlation': upper_tri.loc[var, col],\n",
    "                        'keep_importance': importance_df[importance_df['Feature'] == var]['Importance'].values[0],\n",
    "                        'drop_importance': importance_df[importance_df['Feature'] == col]['Importance'].values[0]\n",
    "                    })\n",
    "    \n",
    "    # 创建冗余特征对数据框\n",
    "    redundant_df = pd.DataFrame(redundant_pairs).sort_values('correlation', ascending=False)\n",
    "    \n",
    "    # 生成建议保留和删除的特征列表（消除循环依赖）\n",
    "    features_to_drop = set()\n",
    "    for _, row in redundant_df.iterrows():\n",
    "        if row['drop'] not in features_to_drop:\n",
    "            features_to_drop.add(row['drop'])\n",
    "    \n",
    "    features_to_keep = set(X_subset.columns) - features_to_drop\n",
    "    \n",
    "    print(f\"发现{len(redundant_pairs)}对高相关特征对\")\n",
    "    print(f\"建议保留{len(features_to_keep)}个特征，删除{len(features_to_drop)}个冗余特征\")\n",
    "    \n",
    "    return redundant_df, list(features_to_keep), list(features_to_drop)\n",
    "    \n",
    "# 在feature_selection.py中增加可视化函数\n",
    "def visualize_model_comparison(metrics_dict, save_path=None):\n",
    "    \"\"\"可视化所有模型的MAE对比\"\"\"\n",
    "    models = list(metrics_dict.keys())\n",
    "    maes = [metrics_dict[m] for m in models]\n",
    "\n",
    "    plt.figure(figsize=(12, 8))\n",
    "    bars = plt.bar(models, maes, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b'])\n",
    "    \n",
    "    # 添加数值标签\n",
    "    for bar in bars:\n",
    "        height = bar.get_height()\n",
    "        plt.text(bar.get_x() + bar.get_width()/2., height,\n",
    "                 f'{height:.5f}',\n",
    "                 ha='center', va='bottom')\n",
    "    \n",
    "    plt.title('模型性能对比 (MAE)')\n",
    "    plt.ylabel('MAE')\n",
    "    plt.xticks(rotation=45)\n",
    "    plt.grid(axis='y', linestyle='--')\n",
    "    \n",
    "    if save_path:\n",
    "        plt.savefig(save_path, dpi=300, bbox_inches='tight')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b6e61d5-31b8-46e4-a2d6-6e76d56c5cdf",
   "metadata": {},
   "source": [
    "模型训练模块 (model_training.py)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7c294d96-d05d-4cd3-aa18-e26a36e5177f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# model_training.py\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import lightgbm as lgb\n",
    "import xgboost as xgb\n",
    "from catboost import CatBoostRegressor\n",
    "from sklearn.metrics import mean_absolute_error\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import matplotlib.pyplot as plt\n",
    "import pickle\n",
    "import gc\n",
    "\n",
    "def train_models(X_train, y_train, X_val, y_val):\n",
    "    \"\"\"训练多种模型，包括LightGBM、XGBoost和CatBoost\"\"\"\n",
    "    print(\"\\n训练多种模型...\")\n",
    "    \n",
    "    model_predictions = {}\n",
    "    models = {}\n",
    "    \n",
    "    # 1. 训练LightGBM模型\n",
    "    print(\"训练LightGBM模型...\")\n",
    "    lgb_params = {\n",
    "        'objective': 'regression',\n",
    "        'metric': 'mae',\n",
    "        'learning_rate': 0.05,\n",
    "        'num_leaves': 256,\n",
    "        'min_data_in_leaf': 128,\n",
    "        'lambda_l1': 1.0,\n",
    "        'lambda_l2': 1.0,\n",
    "        'feature_fraction': 0.9,\n",
    "        'bagging_fraction': 0.8,\n",
    "        'bagging_freq': 5,\n",
    "        'verbosity': -1\n",
    "    }\n",
    "    \n",
    "    train_set = lgb.Dataset(X_train, label=y_train)\n",
    "    val_set = lgb.Dataset(X_val, label=y_val)\n",
    "    \n",
    "    lgb_model = lgb.train(\n",
    "        lgb_params, train_set,\n",
    "        num_boost_round=100 if DEBUG else 5000,\n",
    "        valid_sets=[val_set],\n",
    "        callbacks=[lgb.early_stopping(20), lgb.log_evaluation(100)]\n",
    "    )\n",
    "    \n",
    "    lgb_pred = lgb_model.predict(X_val)\n",
    "    lgb_mae = mean_absolute_error(y_val, lgb_pred)\n",
    "    print(f\"LightGBM验证集MAE: {lgb_mae:.5f}\")\n",
    "    \n",
    "    models['lgb'] = lgb_model\n",
    "    model_predictions['lgb'] = lgb_pred\n",
    "    \n",
    "    # 2. 训练XGBoost模型\n",
    "    print(\"训练XGBoost模型...\")\n",
    "    # 标准化特征以提高XGBoost性能\n",
    "    scaler = StandardScaler()\n",
    "    X_train_scaled = pd.DataFrame(\n",
    "        scaler.fit_transform(X_train),\n",
    "        columns=X_train.columns\n",
    "    )\n",
    "    X_val_scaled = pd.DataFrame(\n",
    "        scaler.transform(X_val),\n",
    "        columns=X_val.columns\n",
    "    )\n",
    "    \n",
    "    xgb_params = {\n",
    "        'objective': 'reg:squarederror',\n",
    "        'eval_metric': 'mae',\n",
    "        'eta': 0.05,\n",
    "        'max_depth': 8,\n",
    "        'subsample': 0.8,\n",
    "        'colsample_bytree': 0.8,\n",
    "        'min_child_weight': 3,\n",
    "        'tree_method': 'hist',\n",
    "        'seed': RANDOM_SEED\n",
    "    }\n",
    "    \n",
    "    dtrain = xgb.DMatrix(X_train_scaled, label=y_train)\n",
    "    dval = xgb.DMatrix(X_val_scaled, label=y_val)\n",
    "    \n",
    "    watchlist = [(dtrain, 'train'), (dval, 'validation')]\n",
    "    \n",
    "    xgb_model = xgb.train(\n",
    "        xgb_params, dtrain,\n",
    "        num_boost_round=100 if DEBUG else 5000,\n",
    "        evals=watchlist,\n",
    "        early_stopping_rounds=20,\n",
    "        verbose_eval=100\n",
    "    )\n",
    "    \n",
    "    xgb_pred = xgb_model.predict(dval)\n",
    "    xgb_mae = mean_absolute_error(y_val, xgb_pred)\n",
    "    print(f\"XGBoost验证集MAE: {xgb_mae:.5f}\")\n",
    "    \n",
    "    models['xgb'] = xgb_model\n",
    "    model_predictions['xgb'] = xgb_pred\n",
    "    \n",
    "    # 3. 训练CatBoost模型\n",
    "    print(\"训练CatBoost模型...\")\n",
    "    \n",
    "    # 识别类别特征\n",
    "    categorical_features = []\n",
    "    for col in X_train.columns:\n",
    "        if X_train[col].dtype == 'category' or X_train[col].dtype == 'object':\n",
    "            categorical_features.append(col)\n",
    "    \n",
    "    cat_params = {\n",
    "        'loss_function': 'MAE',\n",
    "        'iterations': 100 if DEBUG else 3000,\n",
    "        'learning_rate': 0.05,\n",
    "        'depth': 8,\n",
    "        'l2_leaf_reg': 3,\n",
    "        'random_seed': RANDOM_SEED,\n",
    "        'logging_level': 'Verbose',\n",
    "        'allow_writing_files': False\n",
    "    }\n",
    "    \n",
    "    cat_model = CatBoostRegressor(**cat_params)\n",
    "    \n",
    "    cat_model.fit(\n",
    "        X_train, y_train,\n",
    "        cat_features=categorical_features,\n",
    "        eval_set=(X_val, y_val),\n",
    "        early_stopping_rounds=20,\n",
    "        verbose=100\n",
    "    )\n",
    "    \n",
    "    cat_pred = cat_model.predict(X_val)\n",
    "    cat_mae = mean_absolute_error(y_val, cat_pred)\n",
    "    print(f\"CatBoost验证集MAE: {cat_mae:.5f}\")\n",
    "    \n",
    "    models['cat'] = cat_model\n",
    "    model_predictions['cat'] = cat_pred\n",
    "\n",
    "    \n",
    "    # 4. 创建模型融合\n",
    "    print(\"创建模型融合...\")\n",
    "    \n",
    "    # 默认加权融合（根据各模型性能调整权重）\n",
    "    maes = {\n",
    "        'lgb': lgb_mae,\n",
    "        'xgb': xgb_mae,\n",
    "        'cat': cat_mae\n",
    "    }\n",
    "    \n",
    "    # 基于MAE的反比例权重（MAE越低，权重越高）\n",
    "    total_inv_mae = sum(1/v for v in maes.values())\n",
    "    weights = {k: (1/v)/total_inv_mae for k, v in maes.items()}\n",
    "    \n",
    "    print(\"模型融合权重:\")\n",
    "    for model_name, weight in weights.items():\n",
    "        print(f\"  - {model_name}: {weight:.3f}\")\n",
    "    \n",
    "    ensemble_pred = (\n",
    "        weights['lgb'] * model_predictions['lgb'] + \n",
    "        weights['xgb'] * model_predictions['xgb'] + \n",
    "        weights['cat'] * model_predictions['cat']\n",
    "    )\n",
    "    \n",
    "    ensemble_mae = mean_absolute_error(y_val, ensemble_pred)\n",
    "    print(f\"融合模型验证集MAE: {ensemble_mae:.5f}\")\n",
    "    \n",
    "    model_predictions['ensemble'] = ensemble_pred\n",
    "    \n",
    "    # 保存权重配置\n",
    "    models['weights'] = weights\n",
    "    \n",
    "    # 更新度量值\n",
    "    metrics = {\n",
    "        'lgb_mae': lgb_mae,\n",
    "        'xgb_mae': xgb_mae,\n",
    "        'cat_mae': cat_mae,\n",
    "        # 'rf_mae': rf_mae,  # 新增\n",
    "        # 'lr_mae': lr_mae,  # 新增\n",
    "        'ensemble_mae': ensemble_mae\n",
    "    }\n",
    "    \n",
    "    return models, model_predictions, metrics\n",
    "# ======================== 特征重要性可视化 ========================\n",
    "def visualize_feature_importance(models, feature_names, top_n=30, save_path=None):\n",
    "    \"\"\"可视化模型的特征重要性\"\"\"\n",
    "    print(\"\\nVisualizing feature importance...\")\n",
    "    \n",
    "    # 获取LightGBM特征重要性\n",
    "    lgb_importance = pd.DataFrame({\n",
    "        'Feature': feature_names,\n",
    "        'Importance': models['lgb'].feature_importance(importance_type='gain')\n",
    "    })\n",
    "    lgb_importance = lgb_importance.sort_values('Importance', ascending=False).head(top_n)\n",
    "    \n",
    "    # 创建图形\n",
    "    fig, ax = plt.subplots(figsize=(12, 8))\n",
    "    \n",
    "    # LightGBM\n",
    "    sns.barplot(x='Importance', y='Feature', data=lgb_importance, ax=ax)\n",
    "    ax.set_title('LightGBM Feature Importance (Gain)')\n",
    "    ax.set_xlabel('Importance')\n",
    "    ax.set_ylabel('Feature')\n",
    "    \n",
    "    plt.tight_layout()\n",
    "    \n",
    "    if save_path:\n",
    "        plt.savefig(save_path, dpi=300, bbox_inches='tight')\n",
    "        print(f\"Feature importance visualizations saved to {save_path}\")\n",
    "    \n",
    "    plt.show()\n",
    "    \n",
    "    return {\n",
    "        'lgb': lgb_importance\n",
    "    }\n",
    "# ======================== 预测函数 ========================\n",
    "def make_predictions(models, X_test, config=None):\n",
    "    \"\"\"使用训练好的模型进行预测（多模型版本）\"\"\"\n",
    "    print(\"\\n执行预测...\")\n",
    "    \n",
    "    predictions = {}\n",
    "    \n",
    "    # LightGBM预测\n",
    "    predictions['lgb'] = models['lgb'].predict(X_test)\n",
    "    \n",
    "    # XGBoost预测\n",
    "    # 标准化特征\n",
    "    scaler = StandardScaler()\n",
    "    X_test_scaled = pd.DataFrame(\n",
    "        scaler.fit_transform(X_test),\n",
    "        columns=X_test.columns\n",
    "    )\n",
    "    dtest = xgb.DMatrix(X_test_scaled)\n",
    "    predictions['xgb'] = models['xgb'].predict(dtest)\n",
    "    \n",
    "    # CatBoost预测\n",
    "    predictions['cat'] = models['cat'].predict(X_test)\n",
    "    \n",
    "    # 集成预测\n",
    "    weights = models['weights']\n",
    "    ensemble_pred = (\n",
    "        weights['lgb'] * predictions['lgb'] + \n",
    "        weights['xgb'] * predictions['xgb'] + \n",
    "        weights['cat'] * predictions['cat']\n",
    "    )\n",
    "    \n",
    "    predictions['ensemble'] = ensemble_pred\n",
    "    \n",
    "    return predictions\n",
    "# ======================== 模型评估 ========================\n",
    "def evaluate_models(models, X_val, y_val, config=None):\n",
    "    \"\"\"评估模型性能\"\"\"\n",
    "    print(\"\\nEvaluating model performance...\")\n",
    "    \n",
    "    # 获取预测结果\n",
    "    predictions = make_predictions(models, X_val, config)\n",
    "    \n",
    "    # 计算各模型的MAE\n",
    "    metrics = {}\n",
    "    for model_name, preds in predictions.items():\n",
    "        mae = mean_absolute_error(y_val, preds)\n",
    "        metrics[f'{model_name}_mae'] = mae\n",
    "        print(f\"{model_name.capitalize()} MAE: {mae:.5f}\")\n",
    "    \n",
    "    # 创建预测与真实值的散点图\n",
    "    plt.figure(figsize=(12, 8))\n",
    "    \n",
    "    # 绘制散点图\n",
    "    plt.scatter(y_val, predictions['ensemble'], alpha=0.5)\n",
    "    plt.plot([y_val.min(), y_val.max()], [y_val.min(), y_val.max()], 'r--')\n",
    "    \n",
    "    plt.title('Ensemble Model: Predicted vs Actual')\n",
    "    plt.xlabel('Actual')\n",
    "    plt.ylabel('Predicted')\n",
    "    plt.grid(True)\n",
    "    \n",
    "    # 添加MAE注释\n",
    "    mae_text = f\"MAE: {metrics['ensemble_mae']:.5f}\"\n",
    "    plt.annotate(mae_text, xy=(0.05, 0.95), xycoords='axes fraction', \n",
    "                 bbox=dict(boxstyle='round,pad=0.5', facecolor='yellow', alpha=0.5))\n",
    "    \n",
    "    plt.show()\n",
    "    \n",
    "    return metrics"
   ]
  },
  {
   "cell_type": "raw",
   "id": "9d294e88-f56e-477e-bf1b-e6128d17f87c",
   "metadata": {},
   "source": [
    " Stacking模型模块 (stacking_models.py)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a89ca96a-2fa5-4cf1-9434-9456418fee38",
   "metadata": {},
   "outputs": [],
   "source": [
    "# stacking_models.py\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import lightgbm as lgb\n",
    "import xgboost as xgb\n",
    "from catboost import CatBoostRegressor\n",
    "from sklearn.linear_model import LinearRegression, Ridge, Lasso, ElasticNet\n",
    "from sklearn.model_selection import KFold\n",
    "from sklearn.metrics import mean_absolute_error\n",
    "from sklearn.metrics import mean_absolute_error, mean_squared_error,r2_score\n",
    "import matplotlib.pyplot as plt\n",
    "import pickle\n",
    "import gc\n",
    "import os\n",
    "from datetime import datetime\n",
    "\n",
    "def create_stacking_model(X_train, y_train, X_val, y_val, categorical_features=None, n_folds=5):\n",
    "    \"\"\"\n",
    "    使用stacking技术构建融合模型\n",
    "    \n",
    "    参数:\n",
    "    - X_train, y_train: 训练数据和标签\n",
    "    - X_val, y_val: 验证数据和标签\n",
    "    - categorical_features: 类别特征列表\n",
    "    - n_folds: 交叉验证折数\n",
    "    \n",
    "    返回:\n",
    "    - stacking_model: 训练好的stacking模型\n",
    "    - base_models: 基础模型列表\n",
    "    - meta_model: 元模型\n",
    "    - metrics: 性能指标\n",
    "    \"\"\"\n",
    "    from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
    "    import numpy as np\n",
    "    import gc\n",
    "    \n",
    "    print(\"\\n========== 开始构建Stacking模型 ==========\")\n",
    "\n",
    "    base_models = [\n",
    "        {\n",
    "            'name': 'LightGBM',\n",
    "            'model': lgb.LGBMRegressor(\n",
    "                objective='regression',\n",
    "                metric='mae',\n",
    "                learning_rate=0.06,\n",
    "                num_leaves=256,\n",
    "                max_depth=8,\n",
    "                feature_fraction=0.95,\n",
    "                bagging_fraction=0.8,\n",
    "                n_estimators=2000,\n",
    "                n_jobs=-1,\n",
    "                random_state=42\n",
    "            ),\n",
    "            'params': None\n",
    "        },\n",
    "        {\n",
    "            'name': 'XGBoost',\n",
    "            'model': xgb.XGBRegressor(\n",
    "                objective='reg:squarederror',\n",
    "                eval_metric='mae',\n",
    "                learning_rate=0.06,\n",
    "                max_depth=8,\n",
    "                subsample=0.9,\n",
    "                colsample_bytree=0.9,\n",
    "                n_estimators=2000,\n",
    "                tree_method='hist',\n",
    "                n_jobs=-1,\n",
    "                random_state=42\n",
    "            ),\n",
    "            'params': None\n",
    "        },\n",
    "        {\n",
    "            'name': 'CatBoost',\n",
    "            'model': CatBoostRegressor(\n",
    "                loss_function='MAE',\n",
    "                iterations=2000,\n",
    "                learning_rate=0.06,\n",
    "                depth=8,\n",
    "                l2_leaf_reg=3,\n",
    "                random_seed=42,\n",
    "                logging_level='Silent',\n",
    "                allow_writing_files=False,\n",
    "                thread_count=-1\n",
    "            ),\n",
    "            'params': {'cat_features': categorical_features} if categorical_features else None\n",
    "        }\n",
    "\n",
    "        \n",
    "    ]\n",
    "    \n",
    "    # 2. 定义元模型（可以尝试不同的元模型）\n",
    "    meta_models = [\n",
    "        {\n",
    "            'name': 'Ridge',\n",
    "            'model': Ridge(alpha=1.0, random_state=42)\n",
    "        },\n",
    "        {\n",
    "            'name': 'ElasticNet',\n",
    "            'model': ElasticNet(alpha=0.1, l1_ratio=0.5, random_state=42)\n",
    "        },\n",
    "        {\n",
    "            'name': 'LightGBM',\n",
    "            'model': lgb.LGBMRegressor(\n",
    "                objective='regression',\n",
    "                metric='mae',\n",
    "                learning_rate=0.05,\n",
    "                num_leaves=15,\n",
    "                max_depth=5,\n",
    "                n_estimators=100,\n",
    "                random_state=42\n",
    "            )\n",
    "        }\n",
    "    ]\n",
    "    # 3. 设置K折交叉验证\n",
    "    kf = KFold(n_splits=n_folds, shuffle=True, random_state=42)\n",
    "    \n",
    "    # 4. 生成基础模型的元特征\n",
    "    print(\"生成基础模型的元特征...\")\n",
    "    meta_features_train = np.zeros((X_train.shape[0], len(base_models)))\n",
    "    meta_features_val = np.zeros((X_val.shape[0], len(base_models)))\n",
    "    \n",
    "    # 5. 对每个基础模型进行交叉验证训练\n",
    "    fold_models = []\n",
    "    \n",
    "    for i, model_info in enumerate(base_models):\n",
    "        print(f\"\\n训练基础模型: {model_info['name']}\")\n",
    "        model_name = model_info['name']\n",
    "        model = model_info['model']\n",
    "        params = model_info['params']\n",
    "        \n",
    "        # 存储每个折上训练的模型\n",
    "        fold_models_for_base = []\n",
    "        \n",
    "        # 用于存储当前折的训练数据索引\n",
    "        train_indices = np.zeros(X_train.shape[0], dtype=bool)\n",
    "        \n",
    "        # 进行K折交叉验证\n",
    "        for fold, (train_idx, val_idx) in enumerate(kf.split(X_train, y_train)):\n",
    "            print(f\"  Fold {fold+1}/{n_folds}\")\n",
    "            \n",
    "            # 获取当前折的训练和验证数据\n",
    "            X_fold_train, X_fold_val = X_train.iloc[train_idx], X_train.iloc[val_idx]\n",
    "            y_fold_train, y_fold_val = y_train.iloc[train_idx], y_train.iloc[val_idx]\n",
    "            \n",
    "            # 标记当前折的训练索引\n",
    "            train_indices[val_idx] = True\n",
    "            \n",
    "            # 根据模型类型进行训练\n",
    "            if model_name == 'CatBoost' and params and 'cat_features' in params:\n",
    "                # 为CatBoost传递类别特征\n",
    "                model_fold = model.fit(\n",
    "                    X_fold_train, y_fold_train,\n",
    "                    cat_features=params['cat_features'],\n",
    "                    eval_set=(X_fold_val, y_fold_val),\n",
    "                    early_stopping_rounds=50,\n",
    "                    verbose=False\n",
    "                )\n",
    "            else:\n",
    "                model_fold = model.fit(X_fold_train, y_fold_train)\n",
    "            \n",
    "            # 保存模型\n",
    "            fold_models_for_base.append(model_fold)\n",
    "            \n",
    "            # 在验证集上进行预测，作为元特征\n",
    "            meta_features_train[val_idx, i] = model_fold.predict(X_fold_val)\n",
    "            \n",
    "            # 清理内存\n",
    "            gc.collect()\n",
    "        \n",
    "        # 6. 使用所有训练好的折模型对验证集进行预测\n",
    "        print(f\"  使用{model_name}基础模型对验证集进行预测...\")\n",
    "        val_preds = np.zeros(X_val.shape[0])\n",
    "        \n",
    "        for fold_model in fold_models_for_base:\n",
    "            val_preds += fold_model.predict(X_val)\n",
    "        \n",
    "        # 取平均作为最终预测\n",
    "        meta_features_val[:, i] = val_preds / len(fold_models_for_base)\n",
    "        \n",
    "        # 保存当前基础模型的所有折模型\n",
    "        fold_models.append(fold_models_for_base)\n",
    "        \n",
    "        # 验证当前基础模型性能\n",
    "        base_mae = mean_absolute_error(y_val, meta_features_val[:, i])\n",
    "        base_mse = mean_squared_error(y_val, meta_features_val[:, i])\n",
    "        base_rmse = np.sqrt(base_mse)\n",
    "        base_r2 = r2_score(y_val, meta_features_val[:, i])\n",
    "        print(f\"  {model_name}基础模型验证集MAE: {base_mae:.5f}, MSE: {base_mse:.5f}, RMSE: {base_rmse:.5f}, R²: {base_r2:.5f}\")\n",
    "\n",
    "    \n",
    "    # 7. 训练元模型\n",
    "    print(\"\\n训练元模型...\")\n",
    "    best_meta_model = None\n",
    "    best_meta_mae = float('inf')\n",
    "    best_meta_mse = float('inf')\n",
    "    best_meta_rmse = float('inf')\n",
    "    best_meta_r2 = -float('inf')\n",
    "    \n",
    "    for meta_model_info in meta_models:\n",
    "        meta_name = meta_model_info['name']\n",
    "        meta_model = meta_model_info['model']\n",
    "        \n",
    "        # 训练元模型\n",
    "        meta_model.fit(meta_features_train, y_train)\n",
    "        \n",
    "        # 使用元模型进行预测\n",
    "        meta_preds = meta_model.predict(meta_features_val)\n",
    "        \n",
    "        # 评估元模型性能\n",
    "        meta_mae = mean_absolute_error(y_val, meta_preds)\n",
    "        meta_mse = mean_squared_error(y_val, meta_preds)\n",
    "        meta_rmse = np.sqrt(meta_mse)\n",
    "        meta_r2 = r2_score(y_val, meta_preds)\n",
    "        print(f\"{meta_name}元模型验证集 - MAE: {meta_mae:.5f}, MSE: {meta_mse:.5f}, RMSE: {meta_rmse:.5f}, R²: {meta_r2:.5f}\")\n",
    "        \n",
    "        # 更新最佳元模型\n",
    "        if meta_mae < best_meta_mae:\n",
    "            best_meta_mae = meta_mae\n",
    "            best_meta_mse = meta_mse\n",
    "            best_meta_rmse = meta_rmse\n",
    "            best_meta_r2 = meta_r2\n",
    "            best_meta_model = meta_model\n",
    "            best_meta_name = meta_name\n",
    "    \n",
    "    print(f\"\\n最佳元模型: {best_meta_name}\")\n",
    "    print(f\"  MAE: {best_meta_mae:.5f}\")\n",
    "    print(f\"  MSE: {best_meta_mse:.5f}\")\n",
    "    print(f\"  RMSE: {best_meta_rmse:.5f}\")\n",
    "    print(f\"  R²: {best_meta_r2:.5f}\")\n",
    "    \n",
    "    # 8. 创建完整的stacking模型对象\n",
    "    stacking_model = {\n",
    "        'base_models': base_models,\n",
    "        'fold_models': fold_models,\n",
    "        'meta_model': best_meta_model,\n",
    "        'meta_model_name': best_meta_name\n",
    "    }\n",
    "    \n",
    "    # 9. 计算基础模型和元模型的权重（基于性能）\n",
    "    metrics = {\n",
    "        'base_model_maes': [mean_absolute_error(y_val, meta_features_val[:, i]) \n",
    "                           for i in range(len(base_models))],\n",
    "        'base_model_r2s': [r2_score(y_val, meta_features_val[:, i])\n",
    "                          for i in range(len(base_models))],\n",
    "        'meta_model_mae': best_meta_mae,\n",
    "        'meta_model_r2': best_meta_r2\n",
    "    }\n",
    "    \n",
    "    print(\"\\n========== Stacking模型构建完成 ==========\")\n",
    "    \n",
    "    return stacking_model, metrics\n",
    "\n",
    "def stacking_predict(stacking_model, X_test, categorical_features=None):\n",
    "    \"\"\"\n",
    "    使用stacking模型进行预测\n",
    "    \n",
    "    参数:\n",
    "    - stacking_model: 训练好的stacking模型\n",
    "    - X_test: 测试数据\n",
    "    - categorical_features: 类别特征列表\n",
    "    \n",
    "    返回:\n",
    "    - predictions: 预测结果\n",
    "    \"\"\"\n",
    "    print(\"\\n使用Stacking模型进行预测...\")\n",
    "    \n",
    "    # 1. 获取模型组件\n",
    "    base_models = stacking_model['base_models']\n",
    "    fold_models = stacking_model['fold_models']\n",
    "    meta_model = stacking_model['meta_model']\n",
    "    \n",
    "    # 2. 生成基础模型的元特征\n",
    "    meta_features_test = np.zeros((X_test.shape[0], len(base_models)))\n",
    "    \n",
    "    # 3. 对每个基础模型进行预测\n",
    "    for i, model_info in enumerate(base_models):\n",
    "        model_name = model_info['name']\n",
    "        params = model_info['params']\n",
    "        \n",
    "        print(f\"使用{model_name}基础模型进行预测...\")\n",
    "        \n",
    "        # 使用每个折模型进行预测\n",
    "        model_preds = np.zeros(X_test.shape[0])\n",
    "        \n",
    "        for fold_model in fold_models[i]:\n",
    "            model_preds += fold_model.predict(X_test)\n",
    "        \n",
    "        # 取平均作为最终预测\n",
    "        meta_features_test[:, i] = model_preds / len(fold_models[i])\n",
    "    \n",
    "    # 4. 使用元模型进行最终预测\n",
    "    print(f\"使用{stacking_model['meta_model_name']}元模型进行最终预测...\")\n",
    "    final_preds = meta_model.predict(meta_features_test)\n",
    "    \n",
    "    return final_preds\n",
    "\n",
    "def save_stacking_model(stacking_model, model_dir='models', timestamp=None):\n",
    "    \"\"\"保存stacking模型到文件\"\"\"\n",
    "    import os\n",
    "    import pickle\n",
    "    from datetime import datetime\n",
    "    \n",
    "    print(f\"\\n保存Stacking模型...\")\n",
    "    \n",
    "    # 创建模型目录\n",
    "    os.makedirs(model_dir, exist_ok=True)\n",
    "    \n",
    "    # 获取时间戳\n",
    "    if timestamp is None:\n",
    "        timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
    "    \n",
    "    # 保存模型配置\n",
    "    config_path = os.path.join(model_dir, f'stacking_model_config_{timestamp}.pkl')\n",
    "    \n",
    "    with open(config_path, 'wb') as f:\n",
    "        pickle.dump(stacking_model, f)\n",
    "    \n",
    "    print(f\"Stacking模型已保存到 {config_path}\")\n",
    "    \n",
    "    return config_path\n",
    "\n",
    "def load_stacking_model(config_path):\n",
    "    \"\"\"从文件加载stacking模型\"\"\"\n",
    "    import pickle\n",
    "    \n",
    "    print(f\"\\n从配置加载Stacking模型: {config_path}\")\n",
    "    \n",
    "    # 加载配置\n",
    "    with open(config_path, 'rb') as f:\n",
    "        stacking_model = pickle.load(f)\n",
    "    \n",
    "    print(f\"Stacking模型已加载\")\n",
    "    \n",
    "    return stacking_model\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ea482d4-2581-4c65-82d9-8d5ff7db2d93",
   "metadata": {},
   "source": [
    "6. 工具函数模块 (utils.py)\n",
    "包含通用工具函数和辅助方法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6cf767b7-9776-4930-9f38-1ae002eb5f47",
   "metadata": {},
   "outputs": [],
   "source": [
    "# utils.py\n",
    "import os\n",
    "import pickle\n",
    "from datetime import datetime\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "def clean_dataset_thoroughly(df, is_test=False):\n",
    "    \"\"\"\n",
    "    全面清理数据集，处理无穷值、NaN和极端值\n",
    "    \n",
    "    参数:\n",
    "    - df: pandas DataFrame，需要清理的数据\n",
    "    - is_test: 是否为测试集\n",
    "    \n",
    "    返回:\n",
    "    - cleaned_df: 清理后的DataFrame\n",
    "    \"\"\"\n",
    "    print(\"\\n执行全面数据清理...\")\n",
    "    \n",
    "    # 创建副本以避免修改原始数据\n",
    "    cleaned_df = df.copy()\n",
    "    \n",
    "    # 1. 仅对数值类型列检查无穷值\n",
    "    numeric_cols = cleaned_df.select_dtypes(include=['float', 'int']).columns\n",
    "    print(f\"检查{len(numeric_cols)}个数值列是否存在无穷值...\")\n",
    "    \n",
    "    inf_count = 0\n",
    "    for col in numeric_cols:\n",
    "        # 检查当前列中的无穷值\n",
    "        col_inf_mask = np.isinf(cleaned_df[col].values)\n",
    "        col_inf_count = col_inf_mask.sum()\n",
    "        inf_count += col_inf_count\n",
    "        \n",
    "        if col_inf_count > 0:\n",
    "            print(f\"列 '{col}' 中发现{col_inf_count}个无穷值\")\n",
    "            \n",
    "            # 获取非无穷数字的统计信息\n",
    "            non_inf_values = cleaned_df.loc[~col_inf_mask, col]\n",
    "            \n",
    "            if len(non_inf_values) > 0:\n",
    "                # 如果有非无穷值，用99%分位数和1%分位数替换\n",
    "                upper = non_inf_values.quantile(0.99)\n",
    "                lower = non_inf_values.quantile(0.01)\n",
    "                \n",
    "                # 替换正无穷和负无穷\n",
    "                cleaned_df.loc[cleaned_df[col] == np.inf, col] = upper\n",
    "                cleaned_df.loc[cleaned_df[col] == -np.inf, col] = lower\n",
    "            else:\n",
    "                # 如果全是无穷值，替换为0\n",
    "                cleaned_df.loc[:, col] = 0\n",
    "    \n",
    "    if inf_count > 0:\n",
    "        print(f\"总计替换了{inf_count}个无穷值\")\n",
    "    else:\n",
    "        print(\"未发现无穷值\")\n",
    "    \n",
    "    # 2. 处理NaN值\n",
    "    na_count = cleaned_df.isna().sum().sum()\n",
    "    if na_count > 0:\n",
    "        print(f\"发现{na_count}个NaN值\")\n",
    "        \n",
    "        # 找出包含NaN的列\n",
    "        na_cols = cleaned_df.columns[cleaned_df.isna().any()]\n",
    "        \n",
    "        for col in na_cols:\n",
    "            if col in numeric_cols:  # 数值列使用中位数填充\n",
    "                median_val = cleaned_df[col].median()\n",
    "                if pd.isna(median_val):  # 如果中位数也是NaN，使用0填充\n",
    "                    cleaned_df[col] = cleaned_df[col].fillna(0)\n",
    "                else:\n",
    "                    cleaned_df[col] = cleaned_df[col].fillna(median_val)\n",
    "            else:  # 非数值列使用众数填充\n",
    "                mode_val = cleaned_df[col].mode()\n",
    "                if len(mode_val) > 0:\n",
    "                    cleaned_df[col] = cleaned_df[col].fillna(mode_val[0])\n",
    "                else:\n",
    "                    # 如果无法确定众数，对不同类型采用不同策略\n",
    "                    if cleaned_df[col].dtype == 'category':\n",
    "                        cleaned_df[col] = cleaned_df[col].fillna(cleaned_df[col].cat.categories[0])\n",
    "                    elif cleaned_df[col].dtype == 'object':\n",
    "                        cleaned_df[col] = cleaned_df[col].fillna('unknown')\n",
    "                    else:\n",
    "                        cleaned_df[col] = cleaned_df[col].fillna(0)\n",
    "    else:\n",
    "        print(\"未发现NaN值\")\n",
    "    \n",
    "    # 3. 处理极端值 (仅针对数值列)\n",
    "    print(\"处理极端值...\")\n",
    "    \n",
    "    for col in numeric_cols:\n",
    "        # 排除特殊列，如ID列和目标列\n",
    "        if col in ['stock_id', 'date_id', 'seconds_in_bucket', 'row_id']:\n",
    "            continue\n",
    "        if col == 'target' and not is_test:\n",
    "            continue\n",
    "            \n",
    "        # 检查列是否有足够的非NA值\n",
    "        if cleaned_df[col].count() < 2:\n",
    "            continue\n",
    "            \n",
    "        try:\n",
    "            # 计算分位数\n",
    "            q99 = cleaned_df[col].quantile(0.99)\n",
    "            q01 = cleaned_df[col].quantile(0.01)\n",
    "            q75 = cleaned_df[col].quantile(0.75)\n",
    "            q25 = cleaned_df[col].quantile(0.25)\n",
    "            \n",
    "            # 计算IQR\n",
    "            iqr = q75 - q25\n",
    "            \n",
    "            # 避免IQR为0的情况\n",
    "            if iqr > 0:\n",
    "                # 使用IQR方法识别异常值\n",
    "                upper_bound = q75 + 3 * iqr\n",
    "                lower_bound = q25 - 3 * iqr\n",
    "                \n",
    "                # 限制在99%分位数和1%分位数之间\n",
    "                upper_bound = min(upper_bound, q99)\n",
    "                lower_bound = max(lower_bound, q01)\n",
    "                \n",
    "                # 计算被剪裁的值的数量\n",
    "                outliers_count = ((cleaned_df[col] > upper_bound) | (cleaned_df[col] < lower_bound)).sum()\n",
    "                \n",
    "                if outliers_count > 0:\n",
    "                    # 剪裁异常值\n",
    "                    cleaned_df[col] = cleaned_df[col].clip(lower=lower_bound, upper=upper_bound)\n",
    "                    print(f\"列 '{col}' 中剪裁了{outliers_count}个异常值\")\n",
    "            else:\n",
    "                # 如果IQR为0，直接使用分位数裁剪\n",
    "                outliers_count = ((cleaned_df[col] > q99) | (cleaned_df[col] < q01)).sum()\n",
    "                if outliers_count > 0:\n",
    "                    cleaned_df[col] = cleaned_df[col].clip(lower=q01, upper=q99)\n",
    "                    print(f\"列 '{col}' 中剪裁了{outliers_count}个异常值(使用分位数)\")\n",
    "        except Exception as e:\n",
    "            print(f\"处理列 '{col}' 时出错: {e}\")\n",
    "            # 对出错的列尝试基本清理\n",
    "            cleaned_df[col] = cleaned_df[col].replace([np.inf, -np.inf], 0)\n",
    "    \n",
    "    # 4. 最终安全检查：确保数值列中没有剩余的无穷值和NaN\n",
    "    inf_count_after = 0\n",
    "    na_count_after = 0\n",
    "    \n",
    "    for col in numeric_cols:\n",
    "        # 检查无穷值\n",
    "        col_inf_count = np.isinf(cleaned_df[col].values).sum()\n",
    "        inf_count_after += col_inf_count\n",
    "        \n",
    "        # 检查NaN值\n",
    "        col_na_count = cleaned_df[col].isna().sum()\n",
    "        na_count_after += col_na_count\n",
    "        \n",
    "        # 如果仍有问题，强制清理\n",
    "        if col_inf_count > 0 or col_na_count > 0:\n",
    "            print(f\"警告：清理后列 '{col}' 仍有{col_inf_count}个无穷值和{col_na_count}个NaN值\")\n",
    "            \n",
    "            # 强制替换所有无穷值为0\n",
    "            cleaned_df[col] = cleaned_df[col].replace([np.inf, -np.inf], 0)\n",
    "            # 强制替换所有NaN为0\n",
    "            cleaned_df[col] = cleaned_df[col].fillna(0)\n",
    "    \n",
    "    if inf_count_after > 0 or na_count_after > 0:\n",
    "        print(f\"警告：清理后仍然存在{inf_count_after}个无穷值和{na_count_after}个NaN值，已强制清理\")\n",
    "    else:\n",
    "        print(\"数据清理成功，所有数值列都没有无穷值和NaN值\")\n",
    "    \n",
    "    # 5. 数据类型检查\n",
    "    print(\"\\n检查数据类型...\")\n",
    "    print(cleaned_df.dtypes.value_counts())\n",
    "    \n",
    "    return cleaned_df\n",
    "\n",
    "def final_safety_check(df):\n",
    "    \"\"\"最终安全检查，确保没有无穷值或NaN\"\"\"\n",
    "    print(\"执行最终安全检查...\")\n",
    "    \n",
    "    # 转换为pandas以便处理\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        pdf = df.to_pandas()\n",
    "    else:\n",
    "        pdf = df.copy()\n",
    "    \n",
    "    # 检查每一列\n",
    "    numeric_cols = pdf.select_dtypes(include=['float', 'int']).columns\n",
    "    for col in numeric_cols:\n",
    "        # 跳过ID列和目标列\n",
    "        if col in ['stock_id', 'date_id', 'seconds_in_bucket', 'row_id', 'target']:\n",
    "            continue\n",
    "            \n",
    "        # 检查无穷值\n",
    "        inf_mask = np.isinf(pdf[col])\n",
    "        inf_count = inf_mask.sum()\n",
    "        \n",
    "        # 检查NaN值\n",
    "        na_mask = pdf[col].isna()\n",
    "        na_count = na_mask.sum()\n",
    "        \n",
    "        # 如果存在问题，进行修复\n",
    "        if inf_count > 0 or na_count > 0:\n",
    "            print(f\"列 '{col}' 中发现{inf_count}个无穷值和{na_count}个NaN值\")\n",
    "            \n",
    "            # 计算列的有效统计信息\n",
    "            valid_values = pdf[col][~(inf_mask | na_mask)]\n",
    "            if len(valid_values) > 0:\n",
    "                median = valid_values.median()\n",
    "                q01 = valid_values.quantile(0.01)\n",
    "                q99 = valid_values.quantile(0.99)\n",
    "                \n",
    "                # 替换无穷值和NaN\n",
    "                pdf.loc[inf_mask | na_mask, col] = median\n",
    "                \n",
    "                # 剪裁极端值\n",
    "                pdf[col] = pdf[col].clip(lower=q01, upper=q99)\n",
    "            else:\n",
    "                # 如果没有有效值，填充0\n",
    "                pdf[col] = 0\n",
    "    \n",
    "    # 返回清理后的DataFrame\n",
    "    if isinstance(df, pl.DataFrame):\n",
    "        return pl.from_pandas(pdf)\n",
    "    else:\n",
    "        return pdf\n",
    "# 安全除法函数（避免除零错误）\n",
    "def safe_division(a, b, default=0):\n",
    "    \"\"\"安全的除法函数，避免除以零的错误\"\"\"\n",
    "    return np.divide(a, b, out=np.full_like(a, default), where=(b!=0))\n",
    "\n",
    "# 模型保存函数\n",
    "def save_models(models, feature_names, model_dir='models', timestamp=None):\n",
    "    \"\"\"保存模型和配置到文件\"\"\"\n",
    "    # 创建模型目录\n",
    "    os.makedirs(model_dir, exist_ok=True)\n",
    "    \n",
    "    # 获取时间戳或使用提供的时间戳\n",
    "    if timestamp is None:\n",
    "        timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
    "    \n",
    "    # 保存各个模型\n",
    "    model_paths = {}\n",
    "    for name, model in models.items():\n",
    "        if name != 'weights':  # 权重会和配置一起保存\n",
    "            model_path = os.path.join(model_dir, f\"{name}_model_{timestamp}.pkl\")\n",
    "            with open(model_path, 'wb') as f:\n",
    "                pickle.dump(model, f)\n",
    "            model_paths[name] = model_path\n",
    "    \n",
    "    # 保存模型配置\n",
    "    config = {\n",
    "        'timestamp': timestamp,\n",
    "        'model_paths': model_paths,\n",
    "        'feature_names': feature_names,\n",
    "        'weights': models.get('weights', None)\n",
    "    }\n",
    "    \n",
    "    config_path = os.path.join(model_dir, f\"model_config_{timestamp}.pkl\")\n",
    "    with open(config_path, 'wb') as f:\n",
    "        pickle.dump(config, f)\n",
    "    \n",
    "    print(f\"模型和配置已保存到 {model_dir} 目录\")\n",
    "    return config_path\n",
    "\n",
    "# 模型加载函数\n",
    "def load_models(config_path):\n",
    "    \"\"\"从配置文件加载模型\"\"\"\n",
    "    # 加载配置\n",
    "    with open(config_path, 'rb') as f:\n",
    "        config = pickle.load(f)\n",
    "    \n",
    "    # 加载各个模型\n",
    "    models = {}\n",
    "    for name, path in config['model_paths'].items():\n",
    "        with open(path, 'rb') as f:\n",
    "            models[name] = pickle.load(f)\n",
    "    \n",
    "    # 添加权重\n",
    "    if 'weights' in config:\n",
    "        models['weights'] = config['weights']\n",
    "    \n",
    "    print(f\"已加载模型配置: {config_path}\")\n",
    "    return models, config"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b8aabd4-689f-4f4a-9eaf-bac52b4fc5a3",
   "metadata": {},
   "source": [
    "7. 主应用模块 (main.py)\n",
    "整合所有模块，提供完整的应用流程。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "5c016206-55c5-4589-95ed-bd74ea0abc5e",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "配置参数:\n",
      "- 训练数据文件: train.csv\n",
      "- 调试模式: 禁用\n",
      "- 特征工程: 启用\n",
      "- 训练新模型: 是\n",
      "- 使用Stacking: 是\n",
      "\n",
      "========== 启动美股价格预测模型训练流程 (Stacking版) ==========\n",
      "Reading data from train.csv...\n",
      "Data shape: (5237980, 17)\n",
      "Cleaning data...\n",
      "Data shape after cleaning: (5237760, 17)\n",
      "Starting advanced data preprocessing...\n",
      "Processed high-missing column far_price: 55.3% -> 0.00%\n",
      "Processed high-missing column near_price: 54.5% -> 0.00%\n",
      "Clipped 52378 outliers in imbalance_size:\n",
      "  Range: [0.00, 76364957.92]\n",
      "  Std: 20515906.30 -> 11326805.52\n",
      "Clipped 0 outliers in imbalance_buy_sell_flag:\n",
      "  Range: [-1.00, 1.00]\n",
      "  Std: 0.89 -> 0.89\n",
      "Clipped 104699 outliers in reference_price:\n",
      "  Range: [0.99, 1.01]\n",
      "  Std: 0.00 -> 0.00\n",
      "Clipped 104756 outliers in matched_size:\n",
      "  Range: [463873.45, 615165664.02]\n",
      "  Std: 139841291.28 -> 88725758.10\n",
      "Clipped 104735 outliers in far_price:\n",
      "  Range: [0.95, 1.05]\n",
      "  Std: 0.48 -> 0.01\n",
      "Clipped 104740 outliers in near_price:\n",
      "  Range: [0.97, 1.03]\n",
      "  Std: 0.01 -> 0.01\n",
      "Clipped 104730 outliers in bid_price:\n",
      "  Range: [0.99, 1.01]\n",
      "  Std: 0.00 -> 0.00\n",
      "Clipped 104753 outliers in bid_size:\n",
      "  Range: [165.57, 440448.58]\n",
      "  Std: 111422.88 -> 75189.30\n",
      "Clipped 104740 outliers in ask_price:\n",
      "  Range: [0.99, 1.01]\n",
      "  Std: 0.00 -> 0.00\n",
      "Clipped 104754 outliers in ask_size:\n",
      "  Range: [171.25, 445483.42]\n",
      "  Std: 129357.82 -> 76372.20\n",
      "Clipped 104719 outliers in wap:\n",
      "  Range: [0.99, 1.01]\n",
      "  Std: 0.00 -> 0.00\n",
      "Clipped 104396 outliers in time_id:\n",
      "  Range: [273.00, 26193.00]\n",
      "  Std: 7619.20 -> 7614.63\n",
      "Clipped 0 outliers in far_price_missing:\n",
      "  Range: [0.00, 1.00]\n",
      "  Std: 0.50 -> 0.50\n",
      "Clipped 0 outliers in near_price_missing:\n",
      "  Range: [0.00, 1.00]\n",
      "  Std: 0.50 -> 0.50\n",
      "\n",
      "Final Data Check:\n",
      "Shape: (5237760, 19)\n",
      "Remaining missing values: 0\n",
      "\n",
      "Optimized Data Types:\n",
      "stock_id                     int16\n",
      "date_id                      int16\n",
      "seconds_in_bucket            int16\n",
      "imbalance_size             float64\n",
      "imbalance_buy_sell_flag       int8\n",
      "reference_price            float32\n",
      "matched_size               float64\n",
      "far_price                  float32\n",
      "near_price                 float32\n",
      "bid_price                  float32\n",
      "bid_size                   float64\n",
      "ask_price                  float32\n",
      "ask_size                   float64\n",
      "wap                        float32\n",
      "target                     float32\n",
      "time_id                      int16\n",
      "row_id                      object\n",
      "far_price_missing             int8\n",
      "near_price_missing            int8\n",
      "dtype: object\n",
      "\n",
      "执行特征工程...\n",
      "Starting optimized feature engineering...\n",
      "1. 添加成交量特征...\n",
      "2. 添加时间特征...\n",
      "3. 添加WAP相关特征...\n",
      "4. 添加滚动窗口特征...\n",
      "5. 添加订单簿特征...\n",
      "6. 添加RSI特征...\n",
      "7. 添加引用价格特征...\n",
      "8. 添加其他重要特征...\n",
      "特征工程完成。总特征数量: 52\n",
      "\n",
      "执行全面数据清理...\n",
      "检查44个数值列是否存在无穷值...\n",
      "未发现无穷值\n",
      "未发现NaN值\n",
      "处理极端值...\n",
      "列 'imbalance_size' 中剪裁了387937个异常值\n",
      "列 'matched_size' 中剪裁了458182个异常值\n",
      "列 'far_price' 中剪裁了104718个异常值\n",
      "列 'near_price' 中剪裁了104712个异常值\n",
      "列 'bid_size' 中剪裁了264169个异常值\n",
      "列 'ask_size' 中剪裁了258802个异常值\n",
      "列 'spread' 中剪裁了159166个异常值\n",
      "列 'mid_price' 中剪裁了104731个异常值\n",
      "列 'normalized_price_volume' 中剪裁了104756个异常值\n",
      "列 'wap_kurt' 中剪裁了153089个异常值\n",
      "列 'wap_skew' 中剪裁了104756个异常值\n",
      "列 'wap_macd' 中剪裁了104756个异常值\n",
      "列 'wap_diff' 中剪裁了147316个异常值\n",
      "列 'wap_diff_rolling_mean_10' 中剪裁了104745个异常值\n",
      "列 'wap_diff_rolling_max_10' 中剪裁了115265个异常值\n",
      "列 'wap_diff_rolling_min_10' 中剪裁了109902个异常值\n",
      "列 'wap_diff_rolling_std_10' 中剪裁了116871个异常值\n",
      "列 'wap_diff_rolling_mean_20' 中剪裁了120380个异常值\n",
      "列 'wap_diff_rolling_max_20' 中剪裁了108908个异常值\n",
      "列 'wap_diff_rolling_min_20' 中剪裁了100714个异常值\n",
      "列 'wap_diff_rolling_std_20' 中剪裁了113438个异常值\n",
      "列 'wap_rolling_std_10' 中剪裁了108272个异常值\n",
      "列 'roll_implicit_spread' 中剪裁了103918个异常值\n",
      "列 'imbalance_spread' 中剪裁了161618个异常值\n",
      "列 'spread_rolling_std_5' 中剪裁了100290个异常值\n",
      "列 'spread_rolling_mean_10' 中剪裁了152210个异常值\n",
      "列 'rsi_ewm_8' 中剪裁了104756个异常值\n",
      "列 'rsi_ewm_13' 中剪裁了104756个异常值\n",
      "列 'rsi_spread_13' 中剪裁了413251个异常值\n",
      "列 'rsi_ewm_21' 中剪裁了104742个异常值\n",
      "列 'rsi_spread_21' 中剪裁了277182个异常值\n",
      "列 'ref_vs_spread' 中剪裁了61552个异常值\n",
      "列 'wap_vs_ref' 中剪裁了177786个异常值\n",
      "列 'matched_size_pct_change' 中剪裁了776836个异常值\n",
      "列 'wap_momentum_10' 中剪裁了104745个异常值\n",
      "数据清理成功，所有数值列都没有无穷值和NaN值\n",
      "\n",
      "检查数据类型...\n",
      "float64    31\n",
      "float32    12\n",
      "int16       5\n",
      "int8        2\n",
      "object      1\n",
      "int32       1\n",
      "Name: count, dtype: int64\n",
      "\n",
      "准备训练数据...\n",
      "\n",
      "划分训练集和验证集...\n",
      "识别到 0 个类别特征\n",
      "\n",
      "执行多算法集成特征选择...\n",
      "执行集成特征选择...\n",
      "进行LightGBM特征选择...\n",
      "LightGBM特征选择: 从48个特征中选择了21个\n",
      "进行XGBoost特征选择...\n",
      "[0]\ttrain-mae:6.31334\tvalidation-mae:6.29975\n",
      "[20]\ttrain-mae:5.81431\tvalidation-mae:5.80496\n",
      "[40]\ttrain-mae:5.71669\tvalidation-mae:5.71010\n",
      "[60]\ttrain-mae:5.63700\tvalidation-mae:5.63296\n",
      "[80]\ttrain-mae:5.57972\tvalidation-mae:5.57722\n",
      "[99]\ttrain-mae:5.53941\tvalidation-mae:5.53909\n",
      "XGBoost特征选择: 从48个特征中选择了45个\n",
      "进行CatBoost特征选择...\n",
      "CatBoost特征选择: 从48个特征中选择了20个\n",
      "\n",
      "评估各个特征集的性能...\n",
      "LightGBM特征集性能 (MAE): 5.62018, 特征数量: 21\n",
      "XGBoost特征集性能 (MAE): 5.55496, 特征数量: 45\n",
      "CatBoost特征集性能 (MAE): 5.72840, 特征数量: 20\n",
      "\n",
      "执行特征投票融合...\n",
      "集成特征选择: 最终选择了46个特征\n",
      "- 至少两个模型选择的特征: 23\n",
      "- Top 50特征中独有的: 23\n",
      "- 添加的分类特征: 0\n",
      "\n",
      "生成特征重要性可视化图表...\n",
      "\n",
      "所有特征可视化和报告已保存到 feature_selection_results 目录\n",
      "\n",
      "特征选择后的特征数量: 46\n",
      "\n",
      "构建Stacking模型...\n",
      "\n",
      "========== 开始构建Stacking模型 ==========\n",
      "生成基础模型的元特征...\n",
      "\n",
      "训练基础模型: LightGBM\n",
      "  Fold 1/5\n",
      "  Fold 2/5\n",
      "  Fold 3/5\n",
      "  Fold 4/5\n",
      "  Fold 5/5\n",
      "  使用LightGBM基础模型对验证集进行预测...\n",
      "  LightGBM基础模型验证集MAE: 4.89429, MSE: 50.68821, RMSE: 7.11957, R²: 0.42680\n",
      "\n",
      "训练基础模型: XGBoost\n",
      "  Fold 1/5\n",
      "  Fold 2/5\n",
      "  Fold 3/5\n",
      "  Fold 4/5\n",
      "  Fold 5/5\n",
      "  使用XGBoost基础模型对验证集进行预测...\n",
      "  XGBoost基础模型验证集MAE: 4.87801, MSE: 50.12825, RMSE: 7.08013, R²: 0.43313\n",
      "\n",
      "训练基础模型: CatBoost\n",
      "  Fold 1/5\n",
      "  Fold 2/5\n",
      "  Fold 3/5\n",
      "  Fold 4/5\n",
      "  Fold 5/5\n",
      "  使用CatBoost基础模型对验证集进行预测...\n",
      "  CatBoost基础模型验证集MAE: 5.17906, MSE: 59.65598, RMSE: 7.72373, R²: 0.32539\n",
      "\n",
      "训练元模型...\n",
      "Ridge元模型验证集 - MAE: 4.83096, MSE: 48.52512, RMSE: 6.96600, R²: 0.45126\n",
      "ElasticNet元模型验证集 - MAE: 4.82998, MSE: 48.52549, RMSE: 6.96602, R²: 0.45126\n",
      "LightGBM元模型验证集 - MAE: 4.84948, MSE: 49.78816, RMSE: 7.05607, R²: 0.43698\n",
      "\n",
      "最佳元模型: ElasticNet\n",
      "  MAE: 4.82998\n",
      "  MSE: 48.52549\n",
      "  RMSE: 6.96602\n",
      "  R²: 0.45126\n",
      "\n",
      "========== Stacking模型构建完成 ==========\n",
      "\n",
      "保存Stacking模型...\n",
      "Stacking模型已保存到 models\\stacking_model_config_20250529_122021.pkl\n",
      "\n",
      "使用Stacking模型进行预测...\n",
      "使用LightGBM基础模型进行预测...\n",
      "使用XGBoost基础模型进行预测...\n",
      "使用CatBoost基础模型进行预测...\n",
      "使用ElasticNet元模型进行最终预测...\n",
      "\n",
      "Stacking模型在验证集上的MAE: 4.82998\n",
      "\n",
      "绘制时间序列预测对比图...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABcwAAAMQCAYAAAAaYSZ5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FOX+/vF7a3pICCSh94BCaEpRQYogoiIqetSfgNgLykEBQVEERdSjgAqCDT2oKIgiiKIeinSkiFJFBQIkIYX0vnV+f+S7azbZJJvPJpndcL+uy8uwZfbZd2Ynk2cnsxpFURQQEREREREREREREV3ktGoPgIiIiIiIiIiIiIjIF3DCnIiIiIiIiIiIiIgInDAnIiIiIiIiIiIiIgLACXMiIiIiIiIiIiIiIgCcMCciIiIiIiIiIiIiAsAJcyIiIiIiIiIiIiIiAJwwJyIiIiIiIiIiIiICwAlzIiIiIiIiIiIiIiIAnDAnIiIiUpWiKGoPgahB42vM9/B7QkRERL6ME+ZEREREXsrKysKbb76JW2+9FZdffjni4+Nx9dVXY+LEidiwYYPbySGTyYTFixfjvffeq9exdu7cGZ07d4bVaq32tuPGjUPnzp2xe/fuehhZw7NmzRp07twZU6dO9Wo5Nfme+St3z3Ho0KHo3Lkzzp49K1pmfb3GvB3nxebw4cO444476n19rq3XIxERETV8nDAnIiIi8sKRI0dw3XXXYenSpcjJyUGfPn0wZMgQREdH4+eff8aTTz6JBx54AGaz2eV+H3zwARYtWoTi4mKVRk7UsPE15pv+9a9/4dChQ2oPg4iIiKhSerUHQEREROSvrFYr/v3vfyM3NxezZs3C3Xff7XJ9QkICHn/8cezcuRMLFizAjBkznNf5wykJXnvtNRQXF6N58+ZqD4UuQv/9739hsVjE658/vMYuRvy+EBERka/jEeZEREREQr/++iuSk5Nx2WWXVZgsB4B27drhP//5DwBg1apVfjdR1Lx5c3To0AFBQUFqD4UuQq1bt0aHDh1gMBjUHgoRERERXUQ4YU5EREQklJmZCQDQ6XSV3qZr16649dZbMWrUKOepIYYOHYrFixcDAN5991107twZixYtct4nNzcXixYtwq233orLLrsM3bp1w4ABAzBp0iQcPnzY7eOcPXsWs2bNwtChQ9G9e3cMHz4cs2bNQmpqarXPo6CgAGPGjEHnzp0xZcoU2Gw2AO7PYe64LCcnB8uXL8eNN96I+Ph4XHnllXjmmWdw/vx5t4+xdu1a3HbbbejVqxf69++PZ555BhkZGRg+fDg6d+5c7RirMmPGDHTu3Bl//fUXVq9ejZtuugndu3fHgAEDMHv2bBQWFsJut+PDDz/EiBEj0KNHD9xwww1YsWKF2zcxkpOTnS27deuG/v37Y+LEifj999/dPn5+fj4WLFiA4cOHo3v37rj++uuxatWqKseckJCA6dOnY+DAgejWrRuuvvpqzJw5E8nJyR49Z8f5mIcOHerR7RctWoTOnTvjxx9/xIYNGzB69Gh0794dQ4YMwZw5c3DhwgWX2yclJaFz58547LHH8MMPP2DIkCHo3r07Ro0ahcLCQuftNmzYgHHjxuGyyy5Djx49MHr0aOeR4e788MMPuPPOO9G7d2/0798fzz//PLKzs93etrJzgxcUFGDx4sW48cYb0bNnTwwcOBCPPPKIy2ujutcYAOzatQsPPPAA+vXrh/j4eIwcORKLFi1CUVGR2/Hs2bMH9957L/r06YPLL78ckydP9vj7VZUVK1agc+fOmDZtmtvrDx8+jM6dO+PWW291Xnbq1Ck89dRTGD58OLp164YrrrgCDz/8MHbu3On1eIDS9XPWrFkYMWIEevbsie7du2PYsGGYPXs20tLS3N7nl19+wWOPPYarrroKvXr1wqhRo/Dee+85t3uOddaha9euzn871rerr77a7bId2529e/e6XJ6WlobXXnsNo0aNQq9evdCtWzcMHjwY06dPx+nTp2sjBREREV2EeEoWIiIiIiHHZM++ffuwePFiTJgwAaGhoRVu98orr7j8e9iwYdizZw/++usvxMXFOT/wECidhL/zzjtx7tw5tG7dGv3794fFYsGxY8fw008/YcuWLfjiiy8QHx/vXN6ePXswceJEFBYWolOnThg8eDBOnjyJVatWYfPmzfjyyy/RokULt8+hpKQEjzzyCI4ePYrrr78e//nPf6p8A8Dhueeew8aNG9GjRw8MGjQI+/fvx5o1a7B792589913CAsLc9527ty5+PTTTxEQEID+/fvDZrNh/fr12LdvX6WTkxLz58/H1q1b0atXL1x55ZXYt28fvvjiC6SnpyMoKAg//fQTevfujebNm+OXX37Biy++CLPZjHvvvde5jEOHDuG+++5DQUEB2rRpg6FDhyItLQ2bNm3Cli1bMHv2bNxxxx3O2+fm5mLcuHH4888/ER0djcGDByMpKQmzZs1Cx44d3Y5z586dePzxx1FcXIy4uDj07NkTZ86cwVdffYVNmzZh2bJl6NatW611KWvt2rX4+eef0aZNGwwePBjHjh3D559/jq1bt+LTTz9Fy5YtXW7/119/YerUqbjkkkvQsWNHKIqCkJAQAKXrwOrVqxEYGIju3bsjLCwMv/76K1555RVs374d7777LoxGo3NZb731FpYsWQKDwYB+/fpBr9fj22+/xcGDBz0ef1paGsaPH48zZ86gadOmGDhwIDIzM/Hzzz9j+/btWLp0KQYNGlTlawwAli5dijfffBN6vR7x8fFo2rQpfv/9dyxevBibN2/G8uXL0ahRI+ftV69ejVmzZgEALr/8coSHh2Pnzp04cOBAhc8nqKkbbrgBr7zyCjZv3gyTyYSAgACX67/77jsAwOjRowEA586dw9ixY5GVlYX4+HhccsklSE9Px9atW7F161a89tpruPnmm8XjOXDgAB544AEUFxejW7du6Ny5M3Jzc3Ho0CF88cUX2LZtG9avX++yrfvggw8wf/58aDQa9O7dG5GRkfj999+xYMEC7NixAx999BFat26NUaNGYf369QCAG2+8ERqNRjzO06dP4+6770ZWVhY6deqEAQMGoKioCIcPH8batWuxefNmrF+/Hs2aNRM/BhEREV2kFCIiIiISe+aZZ5S4uDglLi5O6datm3LfffcpS5cuVfbv36+YzeZK7/f2228rcXFxyoIFC1wuf+mll5S4uDjlpZdeUux2u/PykpIS5ZFHHlHi4uKUmTNnOi8vKChQBg4cqMTFxSmffvqp83K73a689tprSlxcnPLoo486L3eM1WKxKCaTSbn//vuVuLg4ZdKkSYrFYnEZy9ixY5W4uDhl165dFS7r0aOHsnv3bufl2dnZyvDhwyuMY/fu3UpcXJxy9dVXKwkJCc7L//77b+Wqq65yjscb06dPV+Li4pTOnTsrmzZtcl5+9OhRpXPnzkpcXJzSs2dP5fjx487rVq1apcTFxSkjRoxwXlZSUuJsuWjRIpf+W7duVeLj45VLL71UOXbsmPPyF198UYmLi1Mefvhhpbi42Hn5l19+6XxuU6ZMcV6emZmp9OnTR7nkkkuU7777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42jzzMxMl8vL/9tX8Qhz8go/0dk77CfHdnJsJ8d2cmwnx3ZybOcd9pNjOzm2k2M7ObaTYzs5tvMO+3nutddew2233QZFURAUFITBgwfj6aefBgCkpKTgxx9/RP/+/XHhwgXodDr06tULs2fPRnh4OFJTU0WPGRsbi9atW2Pjxo0ul//0009eP5/6wLWLxAICAtC2bVu1h+G32E+O7eTYTo7t5NhOju3k2M477CfHdnJsJ8d2cmwnx3ZybOcd9quZK664Ah9//DFmzJiBm266CRaLBR9++CEiIiLQv39/mM1m2O12TJw4EQ899BBCQkLwww8/ID8/H9dee63oMTUaDSZNmoSpU6fihRdewPDhw3HixAm88847AP45fYuv4oQ5ERERERERERERNWhWq/WifOyrr74ab7zxBj766CPnB31edtll+OSTTxAREQEA+PDDD/HWW29h5syZKC4uRqdOnbBo0SL0799f/LijRo1CUVERli1bhq+//hqdOnXCzJkzMXPmTAQHB9fSs6sbGkVRFLUH4c+OHDkCoPSTYS82JpMJKSkpaNasGQICAtQejt9hPzm2k2M7zxWVWHDHzA3Of3817zq2E+J6J8d2cmznHfaTYzs5tpNjOzm2k2M7Obbzjrt+JSUlSEhIQLt27RAYGOhye5vNhqSkJFgsFjWG62QwGNCyZUvodDrVxmC322GxWGAwGOr8KO/vvvsOl156Kdq3b++8bOvWrXj44Yexbt06dOnSpVYfr6p1AKjZHC6PMCevqPkOWUPAfnJsJ8d2cmwnx3ZybCfHdt5hPzm2k2M7ObaTYzs5tpNjO+/UpJ9Op0PLli1ht9vrcETV02q1qk6WO9TXsdPffvstFi5ciMmTJ6NZs2Y4c+YM3n77bfTt27fWJ8trGyfMiYiIiIiIiIiIqMHS6XQ+MVl9MXnttdcwf/58vP7668jKykKTJk0wcuRITJo0Se2hVYsT5kRERERERERERERUayIjIzF37ly1hyHi2x9JSkRERERERERERERUT/xuwjwzMxPTpk1D//790atXLzz00EM4efKk8/o//vgDY8eORc+ePTF48GAsW7bM5f52ux1vv/02Bg4ciB49euC+++7D2bNn6/tpNAgGgwEtWrSAwWBQeyh+if3k2E6O7eTYTo7t5NhOju28w35ybCfHdnJsJ8d2cmwnx3beYT85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AEBJSYnKIyEiIiIiIiIiIiKi+loyh8sjzImIiIiIiIiIiIiIwAlzCoDZbMbvv/8Os9ms9lAiEvvJsZ0c28mxnRzbybGdHNsFhv3k2E6O7eTYTo7t5NhOju0Cw35ybOcfTpgTEREREREREREREYET5kREREREREREREREADhhTkREREREREREREQEgBPmREREREREREREREQAAMXpdDrVHkQk27x5MwCgpKRE5ZG0PofDAbvdDq1WC42G7720FPvJsZ0c28mxnRzbybGdHNsFhv3k2E6O7eTYTo7t5NhOju0Cw35y0dyuJXO4ulAPhtoujUYTdQ+uYGI/ObaTYzs5tpNjOzm2k2O7wLCfHNvJsZ0c28mxnRzbybFdYNhPju38w0IkZrVaUV5eDqvVqvZQIhL7ybGdHNvJsZ0c28mxnRzbBYb95NhOju3k2E6O7eTYTo7tAsN+cmznH06Yk5jD4cCxY8fgcDjUHkpEYj85tpNjOzm2k2M7ObaTY7vAsJ8c28mxnRzbybGdHNvJsV1g2E+O7fzDCXMiIiIiIiIiIiIiInDCnIiIiIiIiIiIiIgIAKA4nU6n2oOIZP/73//gdDphMBjUHkqrczqdsNls0Ol0UBRF7eFEHPaTYzs5tpNjOzm2k2M7ObYLDPvJsZ0c28mxnRzbybGdHNsFhv3kormdxWKBoijo169fs9+ra4XxtGnRtnJ5UhQFer1e7WFELPaTYzs5tpNjOzm2k2M7ObYLDPvJsZ0c28mxnRzbybGdHNsFhv3kormdoih+z+PyCHMiIiIiIiIiIiIiIvAc5kREREREREREREREADhhTkREREREREREREQEgBPmREREREREREREREQAOGFORERERERERERERASAE+ZERERERERERERERAA4YU5EREREREREREREBIAT5kREREREREREREREADhhTkREREREREREREQEgBPmREREREREREREREQAOGFORERERERERERERASAE+ZERERERERERERERAA4YU5EREREREREREREBIAT5kREREQUBZxOp9pDiFhsJ8d2cmwnx3aBYT85tpNht8CwnxzbNU6n9gAosqxbtw6VlZVQFAXHH3884uPj1R5SRHI6nVAUxf3fDocDGg3fv/IH28mxXXC5erJjy7GdHNsRERERERGFluLk2wnkp/nz52P16tVITU3F9u3b0adPH5x55pm46KKL1B5aRFm1ahU2bdoEnU6Hjh07YtKkSWoPKWKwnRzbBdeRI0dgs9mQlpbm/lr9NyTIN7aTYzuZFStW4Ndff0VpaSnOOecc9OzZE3l5eWoPKyKwnRzbybGdHNsFhv3k2E6G3QLDfnJs1zxOmJNf/v3vf+OBBx7AE088gcLCQlRWVuKhhx7Cnj17cPzxx2PGjBlqDzEiPProo3jttddw6qmnorS0FH/88QcyMzOxcOFCbpyawXZybBdcTz75JP71r39h3759KCgowIUXXojhw4cjISGBR/02g+3k2E7mkUcewWuvvYaTTz4ZR48exTfffINBgwZh/PjxGDFihNrDC2tsJ8d2cmwnx3aBYT85tpNht8Cwnxzb+clJ5IeVK1c6zznnHKfZbHZ/7cCBA86HH37YOWbMGOejjz6q3uAixI4dO5ynn3668/PPP3c6nU6nzWZzfvfdd86zzjrLOWrUKOeWLVtUHmH4Yjs5tguupUuXOgcNGuR8/fXXnZ988onz6quvdo4ZM8Z57733Ovfv3+90Op1Ou92u8ijDE9vJsZ3M1q1bnWeddZZzw4YN7q998sknzssuu8x53nnnOT/++GMVRxfe2E6O7eTYTo7tAsN+cmwnw26BYT85tvMfD0eiJjn/+gCCXq+H1WrF0aNHAQA2mw2pqamYNm0aBg4ciHXr1mHt2rVqDjXsVVZW4tixY+jQoQMAQKvVonfv3nj++ecRFxeHGTNmYP/+/QBqzy1NdSorK3H06FG2E+B6FxxOpxM1NTXYsGEDpk2bhvPPPx+nnHIKnn32WZx++un44Ycf8PDDD+PgwYPQaDS8eIoHtpNju8BotVocPHgQVqvV/bVTTjkF119/PdLS0vDiiy/iv//9r4ojDF9sJ6fRaNhOiOudHNsFhv3k2E6G3QLDfnJs5z9OmFOTXOdFPe6447B9+3YsX74cAKDT6WCz2ZCUlIRrr70WcXFxWLNmjZpDDXsFBQXQ6/V499133V9zOBzIzMzEk08+CYfDgVtvvRUA+NH6ejp06ACTyeT1pgzb+aegoABGo5HtAqQoCoxGIyorK1FeXg4AsNvtAIBp06Zh7Nix2LZtG5555hlUVFTwnNJ/cf51fm2DwcB2AlzvAuN0OhETE4OysjIAcL8wGDBgAK688kpotVqsXr0aBw8eVHOYYcP1hovD4WA7gZ9//hlmsxkOh4PtBJxOJ9u1kOebpHa7ne1ayLOfzWZjvxbguifDdS54uJ/SMnzMynB2hPySn5+Pu+++G0uWLMHKlSsB1E2ap6Wl4a677sL69evx448/qjzS8LJu3Tq8++67ePvtt+FwOHDaaafhP//5D/79738DgPuIwOzsbNx3333Ys2cP/vWvf6k76DDx9ttvY/HixZgzZw6+/vprnHTSSVi3bh3b+WH9+vX48MMPsWrVKmzbtg0jR47Et99+i08//RQA20k5HA6kp6djw4YNqK6uhlarhcViAQBcfvnlGD58OP773/9i8+bN7u+Pdn/88Yf735mZmWwn4HQ6ud61gOcLgoKCApx00kmYO3cu/vzzT+j1ene7gQMH4pJLLsHHH3+MP//8U63hhpXt27cDqH2OYLuW+dvf/oZp06bBbrejqKiI7VrA9ZhVFAWFhYUYNmwY5syZw3YtVFRUhOHDh3O9a4HKykpUVFQAAIqLi3HiiSeyn58836AvKirCiBEj+Lj1g9VqdU9OFhcX8zHbQrNmzcK8efMAcB+vpaxWq/s1QlFREYYNG8Z2fuCEOfntnHPOwdVXX40HH3wQK1asAFA7ae6Sl5eHxMREtYYXdubPn4+7774bL730Eu666y488cQTuPLKK2G327FixQqsX78eQN0OR7du3eBwOLBz5041hx0WFi5ciHnz5mH37t14//33sW3bNkyYMAE2m43tmrFo0SLcc889eO211/DYY4+5nwgPHz6M9957D1988QUAtvPX9u3bsWPHDmzduhVarRYzZszAtm3b8NBDDwEADAaDewfj5ptvRnx8PF5//XUAPGJ/9uzZmDJlCioqKqDRaDB9+nS289OOHTuwZ88e7Nq1CxqNhuudn1599VV8+umnXh8xve6669CtWzdMmjQJ5eXlMBgM7ttHjRqFvLw893NKNPv4449x1llnuZ8jAODaa69lOz/MnTsXzzzzDPbt24fffvsNANc7f61atQozZ87EfffdhxdffBEAcPvtt6NHjx6YOHEi2zXhtddew8yZM3Hbbbe5PwF8yy23cL3z07PPPovJkyfjoosuwjXXXAOHw4Fp06ahe/fu7NeMN954A7NmzcItt9yChx9+GGazGddffz169erFx20TXnnlFdxyyy247LLLcMcddwAAZsyYgc6dO3Od88PcuXPxzjvv4Oyzz3Z/jc+1/lm+fDluvfVWXH311XjkkUcAANOnT2c7P0TvqypqMaPRiGuuuQZTp07F7NmzsWDBAvz6668oLy/Hhx9+CAAwmUwqjzI8vP3223j//ffx7LPP4qWXXsLDDz+Mt956C9nZ2bj33nuxY8cOvPLKK+5uAJCUlIS8vLyob7hp0yZ8/PHHeOaZZ/DII49g3bp1uOyyy9CxY0fcfffd2LFjB1auXIkPPvjA/TNsV+ujjz7C+++/j7/97W948cUX8emnn6KwsBClpaUwm8348ccf8cYbb3C989OTTz6JW265BRdffDEmTZqEZcuWITc3F/feey/Wrl2LBx54AEDt5KXrHfvBgwe7r/UQzebMmYN33nkHTz31FOLj42G325GTk4P77ruP7Zrx+OOP46abbsIFF1yAG2+8EZ9//jlyc3Nx33334d1332W7JvznP//B3LlzsX79ethsNgBAamoqbr/9duTk5GD8+PH49ddfodfrAQAWiwUmkwmZmZlqDjssWCwW2Gw23H333e5PI6WmpmL69Ols14Q5c+Zg9erVePHFF5GTk+M+Gis1NRV33HEH2zXh0UcfxWOPPQatVos9e/Zg+fLluPDCC3HgwAHcfvvtaN++Pds1YtGiRXjiiSeQlJSEvXv34vXXX8emTZuQkJCAu+66CxkZGWzXhKeeegrLli3DWWedhVGjRqFLly7QaDRISUlhv2Y8+uijeOKJJ5CQkIDU1FR89tlnOPvss/Hzzz9j2rRp6NChA9v58Mgjj+DZZ59Fjx490KdPH3z55ZeYOHEiTCYT7r//fmRnZ7NbE1zPtS+//DK6du3q/npKSgruvvtuZGZmsl8jHn30UTz77LPo0qULUlNT8c477+Ddd99FfHw87rzzTrZrhq75byGqExcXh2nTpqFjx46YO3cu3nvvPfe7UU8//TTS0tLUHmJY+O233zBgwAD3Bj0pKQkmkwkPPPAAEhMTMWTIEPzyyy9YsWIFvvnmG/Tv3x8bNmzATz/9hNmzZ6s8enXt27cPVVVVaNeuHYDac2wtWrQIv/76K/Lz89G5c2fs3bsXq1atwjfffIMBAwaw3V+2bt2KrKwsdOrUCXa7HfHx8Zg+fTrGjx+PiooKJCUloaysDMuXL+d614ynn34aq1atwrx582C32/Hjjz9i7ty5yM/Px1lnnYWKigrMmTMHVVVVuPfeexEXFwcAKC0tRXJyMux2OzQaTVSeU3revHlYs2YNVqxYgU6dOgGovbgMAJxxxhk4evQo5s2bh4qKCtx///1s5+G5557D66+/jvnz52P//v1466238P7772PEiBE49dRTcfToUcydO5ft6rHb7dBqtUhJScGePXtw9913Y9asWRg+fDi0Wi169OiBhx56CAsXLsSFF16I6667DiaTCTt37sSOHTswePBgte+C6nr06IHc3Fx06dLF/XxwyimnoKSkBA8++CAee+wxTJgwAdOmTWO7v8yePRtr1qzBsmXL0L17dxQWFuKHH35wH/3WvXt3rneN2LlzJz766CMsWLAAw4cPh91uxw8//IB77rkH1113HebPn48HH3wQCxYsYLt6vvvuO3z88cd44okn0LdvX2zfvh0TJkzAkSNHcOzYMXTt2hWLFi3CnDlz+Jitx+l04siRI/jss88wY8YMryNVjx49ir1796JLly6YN28eHnnkEfar57fffsN7772H2bNnY/jw4QCAq666Ctdddx3mzp2Lm266CXfccQeeeOIJtvOwZcsWfPzxx1i0aBEGDhwIAOjbty9uueUWfP755xgxYgQeeughLFq0iNs7H1577TW8/PLLePXVV9GtWzf31/ft24fKykp06dIFc+fO5WPWh23btuHjjz/GvHnzMHToUBw7dgyXXHIJ9Ho9zGYzunXrhvnz52PhwoVs1whOmFOLGQwGjBkzBgMHDsSOHTtgs9lQVFSErKwstYemOtd5GHft2uWeIHI6nXj22Weh0WhQXV2NjRs3IjExERkZGejZsyfWrFmDr776CnFxcXj55ZeRl5en5l1QXXx8PIxGIyoqKpCZmYnLLrsMiqKgZ8+e2Lp1KyoqKmCz2XDSSSfh3Xffxddffx317VwXVty7dy+qq6thNBoBADU1NYiPj8egQYNgsVhQVVWFrKwsZGRk4O233+Z614gjR45gw4YNuPPOO3HCCScAALp27YoPPvgAn332GU466SSMGTMGaWlpuP/++3HZZZchLS0NJpMJ69atw8qVK92P/2izbt06rFixAvfdd597stzhcGDdunU4ePAgsrOzceaZZyIjIwMPPPAAJk2ahPT0dLZD7bkFv/32W0yePBlDhw4FAPzyyy84cOAAvv32W+j1epx99tls54Prfu/duxcXXHABzGYzZsyYgYUL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8X5PPfUU4uPj8e233yIlJQU1NTXuN/hjYmKwbNky9+kfo1VT657JZMKePXsAAJWVlXj00Ufdn1h94YUX3Kd/pIY4YU7USnr37o3evXurPYyIlJmZyfNuC3Xq1AmdOnVSexhhy+l04sCBAzCbzbjhhhuQn5+Pxx57DCtXrgQAXHzxxe4jebt3744VK1bAZDLh1VdfjerJcqDxdp4TvwDw66+/AgD+97//oaioCCtWrEDnzp3VHLrqmlrvHA4HLr30UkyZMgWxsbHYtGkTNm3ahK5du+KVV16J2sez64XAqaeeiu+++w47d+50T6YlJydDo9G4z8Ho6+eiWXPtFEVxn87m3HPP9bpOQ7STrnc33XQTJk6cGNWf6HK1u/rqq/Htt98CAHbv3o0TTjgBl156KVJTU1FRUYF58+bh999/x/jx4zF58mRUVlZCq9VG5RuDLv60q6ysdJ/z+MEHH8SDDz4Iq9WKuLg4xMfHqzl81bV03bv//vtx3XXXwWazweFwRO0nuAD/2lVVVWHevHn43//+h4suugjDhg1DZWUl0tPTeVATavfxunTpgrS0NJSWluKGG26AyWTCvHnzkJSUhKeeegoxMTHQ6/XYvXs33n777ajfL/bUWL/58+cjKSkJK1asQH5+Pm644QbYbDakpqa6r3UW7Rprt2DBAiQkJOC1115Dfn6++zoDiYmJUf980RxOmBMRUdRSFAXJyckYN24ccnNzkZeXh2uvvRZ///vfvSbNAbg/FfLGG2+guLhYtTGHi+baOZ1OXHLJJTj77LNx5plnwul0QqPRRO1pWDw11e61116D0+nExIkTMXHiRNhsNvfPcAITGDZsGDp16uQ+Py9Qe30BnU7nNcmxfPlyaDQa92luqPF2er3e3U6j0bCdD/6udy+//DI0Go17YomAkpISlJSUAADat2/vPk2N3W5HfHw8rrvuOpx88sn44YcfMGLECCQkJKg84vDRVLu4uDhcc801GDlyJHbt2hX1R1f60ty6d+2112LkyJHudY/7J3WaamcymXDNNdfg5JNPxvbt2zFs2DCVRxteXPt4Op0O3377LXJycrBr1y4kJSXhyJEj+N///ocBAwbgscceQ2xsbNR+mqExzfX717/+hfHjx6N9+/ZqDzXsNNfu008/xfjx46P6UyAtxWcFIiKKajqdDueff777nOUdO3bENddc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",
      "text/plain": [
       "<Figure size 1500x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABcwAAAMQCAYAAAAaYSZ5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xdg1PX9x/HX5TIg7L0FRQNVEEdRasVt/TkQEWdFq7auDqsiLqzi1lbcq3XUURWcDEURnCgooggoUmUHCCNAdnL790d6Ry65JJf3JfnehefjH8Ld5ZvPPfO9733zue99zxUKhUICAAAAAAAAAGA3l+b0AAAAAAAAAAAASAZMmAMAAAAAAAAAICbMAQAAAAAAAACQxIQ5AAAAAAAAAACSmDAHAAAAAAAAAEASE+YAAAAAAAAAAEhiwhwAAAAAAAAAAElMmAMAAAAAAAAAIIkJcwAAdguhUMjpIQAtGo+x5MPvJHE0BAAAuyMmzAEASBE7duzQQw89pNNPP12//OUvNXToUB1xxBH605/+pFmzZsWc2PB4PHrsscf0z3/+s1nHOmjQIA0aNEh+v7/e255//vkaNGiQ5s+f3wwja3neeustDRo0SNdee21Cy2nI7yxVxbqPxxxzjAYNGqR169aZltlcj7FEx7m7Wbp0qc4+++xmX58b6/EYr2nTpkXW608++aTRluvUc4cU/7p+0kknadCgQXrppZfiWu7o0aM1aNAgvffeew0az4YNGzRo0CAdccQRDfq+ZJSXl6f7779fY8aM0fDhwzVkyBCNHDlSf/rTn/TBBx802gskzf04AACgsTFhDgBACli2bJn+7//+T08++aQKCgo0fPhwHX300erevbs+/vhjXX311frDH/4gr9cb9X1PP/20Hn30UZWXlzs0cqBl4zGWnM466ywtWbLE6WE0uTfffFOtWrWSJL366quNttxUWK/Hjh0rSZo5c2a9t12xYoVWrFihTp066dhjj23qoSWlF154Qb/5zW/09NNPa9OmTRo2bJiOPvpodenSRR9++KH+8pe/6IILLtD27dudHioAAI5Ld3oAAACgbn6/X3/9619VWFioW265Reedd17U9WvWrNGf//xnff7553rggQd0ww03RK5LhbfT33fffSovL1fv3r2dHgp2Q88//7x8Pp95/UuFx9juaHf4veTm5urrr7/Wb37zG61Zs0afffaZNm3a1Cjb0lTod9ppp+nBBx/UkiVLtG7dOvXv37/W206bNk1S5VHmmZmZzTTC5PHEE0/o4YcfVvv27XXbbbdp9OjRcrvdketXrVqlu+66S1988YXOOOMMvfXWW+rUqZODIwYAwFkcYQ4AQJL75ptvtHHjRh188ME1Jsslac8999Tf//53SdLUqVNTYqKjqt69e2vgwIFq3bq100PBbmiPPfbQwIEDlZGR4fRQgAZ58803FQqFNHLkSJ1yyikKBoOaOnWq08NqNl26dNGRRx4pqe6jzAOBgN555x1J0plnntksY0smixcv1qOPPqo2bdrolVde0emnnx41WS5JAwcO1NNPP63jjjtOmzZt0q233urQaAEASA5MmAMAkOTCb4+u/gduVfvtt59OP/10jRo1KvIW+mOOOUaPPfaYJOmpp57SoEGD9Oijj0a+p7CwUI8++qhOP/10HXzwwRoyZIgOP/xwXXnllVq6dGnMn7Nu3TrdcsstOuaYY7T//vvr+OOP1y233KLNmzfXez9KSko0duxYDRo0SOPHj1cgEJAU+xzm4csKCgr0wgsv6JRTTtHQoUN12GGH6cYbb9SmTZti/oxp06bpjDPO0IEHHqgRI0boxhtvVH5+vo4//ngNGjSo3jHW5YYbbtCgQYP0008/6fXXX9epp56q/fffX4cffrgmTZqk0tJSBYNBPfPMMzrhhBM0bNgwnXzyyXr55ZdjvoixcePGSMshQ4ZoxIgR+tOf/qTvvvsu5s8vLi7WAw88oOOPP17777+/TjrppHonx9asWaPrr79eI0eO1JAhQ3TEEUdo4sSJ2rhxY1z3OXwe2mOOOSau2z/66KMaNGiQ3n//fc2aNUujR4/W/vvvr6OPPlq33Xabtm3bFnX78LmB//jHP+q9997T0Ucfrf3331+jRo1SaWlp5HazZs3S+eefr4MPPljDhg3T6NGjI0eGx/Lee+/pnHPO0UEHHaQRI0bob3/7m3bu3BnztrWdL7mkpESPPfaYTjnlFB1wwAEaOXKkLr/88qjHRn2PMUn64osv9Ic//EGHHnqohg4dqhNPPFGPPvqoysrKYo5nwYIFuuiiizR8+HD98pe/1FVXXRX376suL7/8sgYNGqQJEybEvH7p0qUaNGiQTj/99Mhlq1at0jXXXKPjjz9eQ4YM0a9+9Stddtll+vzzzxMej1S5ft5yyy064YQTdMABB2j//ffXcccdp0mTJmnLli0xv+fLL7/UH//4R/3617/WgQceqFGjRumf//xnZLsXXmfD9ttvv8j/6zsXdXi789VXX0VdvmXLFt13330aNWqUDjzwQA0ZMkRHHXWUrr/+eq1evboxUjRYMBjUtGnT5HK5dMQRR2j06NFKS0vTm2++WevjQkp8vQ5vB19//fUay/7qq680aNAgnX/++TWue//993XppZfq17/+tYYMGaKDDz5YZ511ll5++WUFg0FzhzPOOENS3RPmn3/+ubZt26YDDzxQe++9tySpoqJC//73v3XOOefokEMO0X777acRI0bokksuiWv9tq5LUsO2Z43xGHzyyScVDAZ1+eWXa5999qn1dm63W7fddpuys7M1e/ZsrVq1KnJd+Pf+448/atq0aTr99NM1bNgwHXroobryyiv1888/1zmG77//XoMGDdKRRx4Z8/ft8Xg0fPhwHXzwwaqoqIj7vgEA0FSYMAcAIMmFJ3sWLlyoxx57TCUlJTFvd8899+j2229Xdna2JOm4445TTk6OJCknJ0ejRo2KLGv79u0644wz9Nhjj6m4uFgjRozQYYcdplAopNmzZ+u3v/2tli1bFrX8BQsWaMyYMZo6daqys7N11FFHKSMjQ1OnTtXYsWPrnNSrqKjQ5Zdfru+//14nnXSS/v73v9f5AkDYzTffrLvvvlvZ2dk68sgjFQgE9NZbb+ncc89VcXFx1G3vvPNOXX/99frpp580fPhw7bfffpo5c6bOPvvsWptZTJ48WTfffLOys7N12GGHqaysTK+++qomTJigCRMm6KGHHlKPHj100EEHafXq1br99tv1/PPPRy1jyZIlOvXUUzV16lSlp6frmGOOUf/+/TV37lyde+65NSbCCwsLdd555+mf//ynKioqdNRRR6lVq1a65ZZb9Oyzz8Yc5+eff64xY8Zo2rRp6tixo44++mh16NBBb7zxhk4//XR9//33jdakumnTpunqq69WeXm5jjrqKKWlpemVV17RWWedpQ0bNtS4/U8//aRrr71WXbp00aGHHqoePXqoTZs2kirXgauvvlpLly7Vvvvuq1//+tfavHmz7rnnHl122WU1ztv/8MMP66qrrtL333+vAw88UMOGDdOMGTM0bty4uMe/ZcsWjR07Vo8++qgKCgo0cuRI9evXTx9//LHOOeccffrpp5LqfoxJlRNVF198sRYsWKA999xTRx11VGTC8re//a0KCwujfu7rr7+uiy++WF9++aUGDx6sQw89VJ9//nmjrMMnn3yyMjIy9OGHH8rj8dS4PnwE7ujRoyVJ69ev17hx4/Tuu++qQ4cOkXX0k08+0e9///vIKS6sFi1aFNmetG3bVkcccYQOPPBA5efn69VXX9U555xT4z4//fTTuvDCC/Xxxx9rwIAB+vWvf62dO3fqgQce0CWXXCKv16s99thDo0aNinzPKaecEvX/hlq9erVOO+00PffccwqFQjr88MN16KGHqrS0VNOmTdNZZ52lvLw88/Kt5s+fr7y8vMjjpWfPnvrVr36lbdu2ae7cuTG/p7HW64a688479de//lVff/21Bg8erGOOOUZ9+/bVkiVLdPvtt+u+++4zL/uII45Q9+7dtXbt2lpf6H377bcl7Trnucfj0fnnn697771XGzdu1EEHHaQjjjhC2dnZ+uyzz/SHP/yh1oaJasj2rDEeg2VlZZEXo8eMGVPv7bt27Rp5gXTGjBk1rn/88cd1/fXXy+/364gjjlCrVq00e/ZsnXPOOcrNza11uUOGDNHgwYO1efPmmC8izJ07V0VFRTr55JMj5+QHAMBRIQAAkPRuvPHGUE5OTignJyc0ZMiQ0MUXXxx68sknQ19//XXI6/XW+n2PPPJIKCcnJ/TAAw9EXX7HHXeEcnJyQnfccUcoGAxGLq+oqAhdfvnloZycnNDEiRMjl5eUlIRGjhwZysnJCb300kuRy4PBYOi+++4L5eTkhK644orI5eGx+ny+kMfjCf3+978P5eTkhK688sqQz+eLGsu4ceNCOTk5oS+++KLGZcOGDQvNnz8/cvnOnTtDxx9/fI1xzJ8/P5STkxM64ogjQmvWrIlc/vPPP4d+/etfR8aTiOuvvz6Uk5MTGjRoUGju3LmRy7///vvQoEGDQjk5OaEDDjggtHz58sh1U6dODeXk5IROOOGEyGUVFRWRlo8++mhU/08++SQ0dOjQ0L777hv64YcfIpfffvvtoZycnNBll10WKi8vj1z+2muvRe7b+PHjI5dv3749NHz48NAvfvGL0DvvvBN1P6ZMmRLKyckJHXvssSGPxxO5vOrvLKyoqCi0cuXK0Lp16+JqFF7fcnJyQrfffnvI7/eHQqFQyOv1hiZMmBDKyckJXXrppZHb5+bmRm4/adKkyOWBQCAUCoVCr7/+eignJyd0yimnhNavXx+5vri4OHTxxRfXWLeXLFkSGjRoUOiQQw4J/fjjj5HL169fHzr66KNj3sfw5WvXro1cFn4MXHPNNVGN5s6dGxo8eHDo0EMPjTzuanuMhdfJkSNHRq0THo8ndMMNN9T4nW3atCm0//77h4YMGRK1zm/fvj102mmnRcZedZwN9ac//SmUk5MTev/996MuDwQCocMPPzy07777hvLz80Oh0K5tzpQpU6Ju+8EHH4RycnJCxx13nHkcoVAodMopp4RycnJCs2fPjrp869atkd/J9OnTI5cvXbo0NHjw4NBBBx0UWrRoUeTy0tLSyPbi3//+d+TyWL/r8Po2cuTImGMKL+fLL7+MXHbZZZeFcnJyQs8991zUbYuKikJjx44N5eTkhJ544onI5W+++WaN321TuOqqq2o0mjlzZignJyd0wQUXxPyexlivw9vB1157rcbyv/zyy1BOTk5o3LhxkcuWLVsWWV+2b98edfvweIcNGxb1PBbrMVmXyZMnh3JyckJ33nlnjeuKiopCQ4cODR1wwAGhkpKSUCgUCj333HOhnJyc0J/+9Keo9cPv94cmTZoUysnJCV144YWRy2OtN5Z1qaHbs8Z4DH799dehnJyc0JFHHlnvbcPCz1t/+MMfIpeFf++DBw+OWucqKipC55xzTignJyd07733Ri6P9Th44YUXQjk5OaHrr7++xs8M7yMsXrw47nECANCUOMIcAIAUcPvtt+uvf/2rsrOz5fV69fnnn+vBBx/Ueeedp0MOOUTXXHONfvrpp7iX1759e40cOVJXXnmlXC5X5PKsrKzIUXhVjwT+8MMPtWXLFh1xxBFRR+q6XC5dddVV2nvvveXxeOT3+6N+TjAY1LXXXqt58+bphBNO0OTJk5WeHv9njp911ln61a9+Ffl/x44ddeqpp0pS1P198cUXJUnXX3+9BgwYELl877331vXXXx/3z4vHUUcdpWOPPTby//3220977bWXJOm8887TL37xi8h1J5xwgqTKIwXD3nvvPW3ZskXDhw/Xn//856j+Rx55pC655BL5/X79+9//liR5vV699dZbysjI0F133RV19N2ZZ54ZNZawN954Q4WFhTrnnHN08sknR1139tln66ijjlJubq7mzJlT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760hQ4YoGAzqj3/8Y9Ttq59qJV6HH364LrnkEl144YV64IEHdOyxxzZowibWhHN14bHV9cd6Y05+NORIvVjCY6ntvoWvD/+c+hrEmjAJH1V49NFHq23btrV+b2MfTVrXmKRd96369bGOkgzfh44dO2rkyJF1/rzwKQQsrWr7uYkILyMzMzNyWp7ahF9cqG/sDX13Rm1Gjx6tV155RbNmzdKpp56qefPmqbCwUGeccUbUkccZGRm67777dMUVV+iDDz7QvHnztHjxYn322Wf67LPP9Prrr+vf//531Kk9GuK2227TK6+8IrfbrcGDB+v//u//tPfee2vYsGGaN2+ennrqqajbW7dBDRHrd//MM8/oH//4h6TKD8A84ogjtM8++2jo0KFat26dbrvtNvPPmzt3bswPS451+pKwFStW6IcffpBU+YGkq1evjnm7goICvffeezrttNMkNc56XZ9Y2+CtW7dq3LhxWrdundq3b6+hQ4fq6KOP1qBBg3TIIYfod7/7XcxTNDXUCSecoDvuuENz5szRpEmT1Lp168iHfZ5xxhlRt/3qq690+eWXq6ysTL169dKwYcM0cOBA7bvvvurTp0+N21tU723ZnjXGY3CfffZRZmam1q1bpx07dtT5QkzYd999J6nmO6ak+J6T63LYYYepd+/eWrBggbZt26bNmzdr1apVOuqooyJHqgMAkAyYMAcAIMn96U9/0tq1a/X6669r//33j3mbzMxMjRo1SosXL673SLLS0lLdcsstkqQnnniixjmwY53XOvyHbG1HJM+dO1der1cjR46MOlr40UcfVXZ2ts466yxNnTpVt956q/71r3/VOb6G6tSpk7KyslRYWKiysjJlZ2dHXe/xeBp0dF1TC7es7Wjh8BHQ4dOvhI/yizWxJtU8Wjv8M9auXasLLrhAhx12WMJjbqhY576VFJkYi+dFk/CkUVZWlu6///64fm6PHj20Zs0abdy4scaLAaFQKK53GdR1/l6p8hQ5q1at0sEHHxx1HuKqOnbsqIyMDPn9ft19991xTSr36NFDP//8c8yxS7F/zxYHHHCABgwYoM8//1wlJSWaNWuWJNV6dOeAAQN06aWX6tJLL1V5ebk++eQT3XbbbVq0aJHmzJlT4xz58Vi4cKFeeeUV9erVS88++6wGDhwYdf37779f43u6deumjRs3avPmzdpz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S919990Nflt6XY4++midccYZeuONN3TKKadoxIgRkiqPpgyfAiXRc483ltatW+vhhx/WpZdeqoceekjTpk3T4MGDtWXLFi1evFhut1sTJ06Mmgj54x//qG+//VZfffWVjjvuOA0fPlz5+fn69ttvdeCBB9Y4srNHjx667777dM011+iaa67R448/rr322kt5eXn6/vvvJUk33nhjzHPUVjVnzhzdeOON6tOnT4NOH9GzZ0/deeedeuutt9SvXz8tXbpUeXl5+sUvfqHrrrsu7uVccMEFWrJkiWbNmqVTTjlFQ4cOVceOHbV06VJt3bpVXbp00QMPPBC5/cCBAzVx4kTddtttuuCCCzR8+HC1adNGX375pTp16qSuXbtGrde1ufPOOzVu3DhNmTJF8+bN05AhQ7R161YtXrxYGRkZevDBByMTsrU9xo477jhdfPHFeu6553TmmWdqv/32U/fu3bVixQrl5uaqdevWeuSRRyITRZ07d9bdd9+tq666SldeeaUOPPBAde/eXV9//bUCgYD23HPPGketWvXt21e//OUvIxOGsU69cP3112vRokV64YUXNHfuXP3iF7+Q1+vVt99+q5KSEo0aNareDzStzYknnqjHHntMP/30k4477jgdcMAB8nq9Wrx4sYqLi7XPPvvo559/jvpdHXDAAbrmmms0efJkjR07VsOHD1fr1q0jk9lHHHFE5IUzqXKC+KefftIFF1ygPffcU/fee6+ys7P1hz/8QXfeeafuvPNOvfvuu+ratau+/fZbBQIBHX300fr4448jyzjkkEO07777avny5TrhhBP0y1/+UlLlkefbt2+POc6mFP6wz1NOOaXe25522mn6/PPPNXPmTF133XVq06ZNo6zXJ510kp544gmtX79ev/nNb/TLX/5S+fn5Wrx4scaMGRM5b3jYhRdeqG+++UaPPvqoPvroI/Xt21dbtmzRkiVLlJWVFfkw28ZqOHbsWN1zzz2aMmWK+vTpU+OUVK1atdI555yjl156Sb/73e80fPhwtW/fXj///LPWrFmjPn36aOfOnSouLlZFRUXUef2ra8i6JDV8e9aYj8ELL7xQnTp10i233KLrrrtO9913n4YOHaqsrCxt2rRJP/zwg4LBoIYPH67JkyfH/aKm1RlnnKEFCxZIqvydAQCQbDjCHACAFHDEEUdo9uzZuvLKK7X//vsrNzdXH374ob799lv17NlTV155pd577z0NHTo06vuOO+44XXjhhcrOztZnn32mb775RlLleWWvvPJK9e3bV19//bW+++47devWTePHj9dbb72lnJwcbd26NTK5Kkm/+tWv9Oabb+rUU0/V1q1b9eGHH6q8vFxnn3223njjjcg5t+syadIkZWZmaubMmbWeLsTqjjvu0C233KL+/ftrwYIFWrJkiU499VQ9++yzklTnh182t4MOOkhvv/22zjrrLHk8Hn344YfauHGjTjrpJE2ZMkXnnXde1O0zMzP1zDPPaPz48erUqZM+/fRTbd26VePHj9f48eNj/ozf/OY3kd9XcXGxPvnkE+Xn5+uoo47Siy++GDkCuimcdtppuvPOO+XxePTxxx8rKytLf/7zn/Xyyy9HnR6hPmlpaXrggQcikzsrVqzQ559/rrZt2+rCCy/UtGnTtNdee0V9z7nnnqvnnntOhxxyiH744QctXLhQI0eO1Msvv1zj/Pa16dGjh9544w394Q9/UHp6uj766COtWrVKxxxzjKZMmRJ1+pLaHmNS5YTXk08+qREjRmjt2rX69NNPlZaWpjPOOEPTp0+PnGYk7Nhjj9Urr7yiY489VmvWrNG8efO077776uWXX46cy76xhCfJhw4dWqOhJO2xxx6Rc2AHg0F98skn+vbbb7XPPvvozjvv1N///nfzz27btq1ee+01nXHGGcrKytJnn32mlStXaujQoXrwwQf14osvyuVy6fPPP4863cWll16qZ555Roceeqh++OEHzZs3Tx06dNDVV1+txx9/POrDY++66y7tt99+Wrt2rb766qvIO0/OP/983XfffRoyZIiWL1+ur7/+WoceeqjeeOONGudGd7vdev7553XRRRepc+fOmj9/vpYvX64BAwbotttu09tvv6327dtr6dKlTT5pvmXLFn3xxReS6j4dS9jxxx+vtm3bqrS0NHIal8ZYr9u0aaMpU6bo9NNPl9vt1qeffqrS0lJNmjRJN998c41x/OY3v9Gzzz6r4cOHa+PGjZFz54cn18eNGydJNSaXrU499VRlZGTI5/Np7NixMU8tc+ONN+qWW27R3nvvraVLl2rhwoXKzs7W5ZdfrmnTpunQQw9VMBis9zmqIeuS1PDtWWM/BkePHq3Zs2frsssuU48ePbRw4UJ98sknKi4u1gknnKB/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maI777xTU6dOlcvl0iWXXCKv1+vgvQIAAEhe8xZv1Kjx0zV1zn+dHgqAOlz94CcaNX66Zny2yumhAAAApKyUmjBft26dvvjiC91666365S9/qb322ksTJ05Ujx499M477+i1115TZmamJk2apIEDB2rs2LG68MIL9fTTT0uSvF6vnnvuOf3lL3/RkUceqcGDB+vBBx/Uli1bNGfOHIfvXWpKS0upVSjp0M+Odna0s6OdHe3skqHd3/9T+W6+/7y/wuGRNEwytEtl9LNzop3XF9DKDYWSpKenf9/sP7+xsN7Z0c6Odna0s6NdYuhnR7v6pVShTp066V//+peGDBkSuczlcikUCqmwsFCLFi3S8OHDlZ6eHrl+xIgRWrNmjbZv364VK1aotLRUI0aMiFzfvn177bvvvvr666+b9b60BFlZWdprr72UlZXl9FBSEv3saGdHOzva2dHOjnZ2tEsM/eycauf1B5v15zUF1js72tnRzo52drRLDP3saBeflJowb9++vY488khlZmZGLnvvvfe0fv16HX744dq8ebN69uwZ9T3du3eXJG3atEmbN2+WJPXq1avGbfLy8pp49AAAAAAAAACAZJZe/02S1zfffKObbrpJxx57rI455hjdc889UZPpkiKvmHg8HpWXl0tSzNsUFhYmNBaPxxP1/7S0NGVkZCgYDMrn89W4fXhcXq9XoVAo6rr09HS53W4FAgH5/f6o61wulzIzMxUKhWKedz0zM1Mul0s+n0/BYPRRJm63W+np6XUuN9Z9kaSMjAylpaVFLdfr9So/P189evRQdnZ2vfe1ruX6/X4FAtGfkNwYDetabn0Nrb+b+u5ruGG4X9euXdW6dWulp6fHvK/xLrclNaxvuaWlpdq6dau6du0aadPY63dYeLmWhk39u7E0lKQtW7aoS5cuUe/GqXpfnWqYjOt3VcXFxcrPz1fv3r2VlZXV5NuIqupqmArbiKrbu8zMzCbfRjTHc2D15TbVNqKiokJ5eXlR27v6lttUDcNSZRsRCASUn5+v7t27y+Vy1bpcJ54Dq14cCgXl8XiSbhvh9Xq1fft29e7dW+np6S1qP6KptxHx7uNJjbsf4fXUXH4yNawqEAxEtQzf17KyMm3ZsiXmPl4q7kc0598aoVBIW7durXMfL1X3I6pr7G1E+DEb3sdrSfsRTf23Rm37eMnYMNnW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FaaPic2R3A1NNuRx7c8OcXZ3IiIiIiIiIiIiojD739oqtUsgAfGinwDw2muv4b333kNtbS1crvaLHOp0OqxYsULJUxARERERERERERFRmJjMZrVLiGniDvMnn3wSS5Ysgdvt7vAxbRcJJSIiIiIiIiIiIiKKVeIO8+effx79+vXDgw8+iLKyMhgMhnDWRURERERERERERERhZrfZ1C4hponnMK+trcWZZ56Jnj17srOciIiIiIiIiIiIiDRP3GHes2dP7NmzJ5y1EBERERERERERERGpRtxhvmDBAjzzzDPYtGlTOOshIiIiIiIiIiIiIlKFeA7zmTNnYtWqVTjttNNQWlqK3Nzcdot86nQ6rFixQnGRRERERERERERERESRJu4w//Of/4x3330XALB161Zs3bq13WPadqATERERERERERERkXqMJnGXcLcgTueFF15Av379cP/996N3794wGhk0ERERERERERERUSzT6cSzdHcL4nT27duH+fPno3///uwsJyIiIiIiIiIiItIAp9OpdgkxTdxh3rNnT+zduzectRARERERERERERFRBLnYYd4pcYf5xRdfjGeeeQYbN24MZz1ERERERERERERERKoQz6Xy1VdfITk5GaeffjpKSkqQk5PTbmoWnU6HFStWKC6SiIiIiIiIiIiIiCjSxB3mzz77rPff27dvx/bt29s9RqfTSXdPRERERERERERERBRV4g7z77//Ppx1EBEREREREREREVGE6fTiWbq7BaZDRERERERERERE1E20nVab/InTWblyZVCPO/nkk6VPQURERERERERERERh5Ha71C4hpok7zG+88cag5ihnhzkRERERERERERFRbHA6nWqXENPEHeb33ntvu585HA7U1dXh1VdfhdvtxuLFixUVR0REREREREREREThk5JoUruEmCbuMJ87d26H2y688EKcdtppeO+99zB06FDpUxARERERERERERERRU1EFv00m8045ZRTgp7nnIiIiIiIiIiIiIhIbRHpMAcAg8GAurq6SO1eEZfLhUceeQSTJ0/GsGHDcMEFF2Dbtm1ql0VEREREREREREREKopIh3l1dTWee+45lJSURGL3ij322GN4/vnncffdd+OFF16ATqfDxRdfDJvNpnZpRERERERERERERBFjNpvVLiGmiecwnz59esCfW61W7Nu3Dy6XC7feequ4sEix2Wx48skncf3112Pq1KkAgIceegiTJ0/GW2+9hRNPPFHlComIiIiIiIiIiIhIDeIR5m63O+B/SUlJGDlyJO6991786le/CmetYfH999+jsbER48eP9/4sLS0NAwcOxNq1a1WsjIiIiIiIiIiIiCiy7Ha72iXENPEI83feeSecdURNTU0NAKCwsNDv53l5eaiurlajJCIiIiIiIiIiIqKocLvdapcQ08Qd5gDQ0NCA1157DXV1dXA6ne2263Q6XHbZZUqeIuyam5sBtJ+rx2Kx4MCBA+L9Wq1Wv//X6/UwmUxwuVwBr9pYLBYArVPEtG2kRqMRBoMBTqcTDofDb5tOp4PZbIbb7Q4457rZbIZOp4PdbofL5fLbZjAYYDQaO91voNcCACaTCXq9PuB+iYiIiIiIiIiISDu6Q5+lZ78ulwtutxs6na6jOPxfZ1CPCmDDhg244IIL0NDQ0OFViVjsME9ISADQ+kf3/BtoDTwxMVG0T5fLhaqqKr+fpaamIj8/H06ns902AOjduzcAYPfu3WhpafHblp+fj9TUVDQ0NGDPnj1+25KSklBUVAS32x1wvxUVFTAYDKirq0NjY6PftpycHGRkZKC5udk70t7DYrF4F2ndsWNHu79paWkpzGYz9u/fj4MHD3YWBxEREREREREREcWw7tBnmZmZiezsbFitVjgcDphMps4i8RJ3mD/88MNoaWnBlVdeiSFDhmhmdVXPVCy7d+9GaWmp9+e7d+9G//79RfvU6/XeP5zvz4DWKxltt/nKy8sLeLUGAFJSUvw69QF4r4TodLqA+/U8b05ODrKysvy2GQwGAEBiYmK73/W9wlJcXNxuv56aMjMzkZ6efvin33b4uoiIiIiIiIiIiCg2xXefpf9+LRaL93HBEHeYf/nllzj//PNxySWXSHehiv79+yMlJQWfffaZt8P84MGD2LRpE84++2zxfj23K7Sl1+s73Aa0nxrGl8Fg8P5h29LpdJ3ut7MrJp3tF+j4tXS1XyIiIiIiIiIiIoptRqOxW/VZ6vX6oKdjARR0mBsMhoC9+rHObDbj7LPPxtKlS5GVlYUePXpgyZIlKCgowIwZM9Quj4iIiIiIiIiIiChiPKO9KTBxh/mIESOwdu1anHHGGeGsJyquvPJKOBwOLFq0CC0tLRgzZgyeeOIJzUwrQ0RERERERERERCRxqNGK9JSOR2t3d+IO8+uuuw5nn302nnzyScyePRu5ubnhrCuiDAYDrr/+elx//fVql0JEREREREREREQUNTabXe0SYpqiDnODwYAlS5ZgyZIlAR+j0+mwadMmcXFERERERERERERERNEi7jDPyMhARkZGGEshIiIiIiIiIiIiIlKPuMP8mWeeCWcdRERERERERERERESq4pKoRERERERERERERN2ETs8u4c4wHSIiIiIiIiIiIqJuwmgUTzrSLbDDnIiIiIiIiIiIiKjbcKtdQExjhzkRERERERERERFRN2G32dUuIaaxw5yIiIiIiIiIiIiICOwwJyIiIiIiIiIiIiICwA5zIiIiIiIiIiIiIiIA7DAnIiIiIiIiIiIiIgLADnMiIiIiIiIiIiKibsNkNqldQkxjhzkRERERERERERFRt6FTu4CYxg5zIiIiIiIiIiIiom7CbrerXUJMY4c5ERERERERERERUXfhdqtdQUxjhzkREREREREREREREdhhTkREREREREREREQEgB3mREREREREREREREQA2GFORERERERERERE1G0YjEa1S4hp7DAnIiIiIiIiIiIi6ib0enYJd4bpEBEREREREREREXUTLpdL7RJiGjvMiRTo2SNd7RKIiIiIiIiIiIiC5nQ41C4hpnHCGiKh1csqAQCzF65SuRIiIiIiIiIiIiIKB44wp27lubtOwCtL5yA5gdeK1HT+SQNx24Xj1C6DiIiIiIiIiIjIDzvMqdvR6XRql9Chp287Dv+6f7baZUTcKUf3wZiBBWqXQSq6//JJuHDOYLXLICIiIiIiIoqIP11/dLfo44lH7DAniiHZ6YkwGfm2pPg3sCIbJ0/tpXYZREREREREceH06X2welklzp7ZX+1S6LDSgrTY7eOJ4cGksSBG/2pEpMTN543FSZMqkJWWoGodyQlGJJgNmDK8h6p1EBEREREREcWLuxZMwMwJ5WqXQVGSkx7+vh2TyRT2fcYTdpgTxaGywlQsmDsUFpNB1Tp6l2TgxXtPwvSxparWQURERBQPLjttGH7/mwmYwXMrIqJubXjfPFx22jC1y+iWVi+rxOpllVF9zqduOz7qz9ndscOcKAJKC1LxytI5+ON1R6tdCsWAKcN7YMHcIbjvsklql9LtTBxWhGNGl2DOlJ5ql0LUpX8/MBv/fsB/jsOl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23spjyT1M07tjFM749TOOLUzTu2MU7ucUT/j1M44tTNO7YxTO+PUzji1yxn1M07tssdk1S7vOfIgd1gVERERERERERERkb/Xg8xwdYa5GJaRkcH169fJyMiw91IeSepnnNoZp3bGqZ1xamec2hmndjmjfsapnXFqZ5zaGad2xqmdcWqXM+pnnNpljwbmYlh6ejrnz58nPT3d3kt5JKmfcWpnnNoZp3bGqZ1xamec2uWM+hmndsapnXFqZ5zaGad2xqldzqifcWqXPRqYi4iIiIiIiIiIiIiggbmIiIiIiIiIiIiICKCBuYiIiIiIiIiIiIgIoIG55IDJZCJPnjyYTCZ7L+WRpH7GqZ1xamec2hmndsapnXFqlzPqZ5zaGad2xqmdcWpnnNoZp3Y5o37GqV32mKxWq9Xei3iU/fTTTwCEhITYeSUiIiIiIiIiIiIicrsHmeHqDHMRERERERERERERETQwlxxISUnh8OHDpKSk2HspjyT1M07tjFM749TOOLUzTu2MU7ucUT/j1M44tTNO7YxTO+PUzji1yxn1M07tskcDcxERERERERERERERNDAXEREREREREREREQE0MBcRERERERERERERATQwFxEREREREREREREBwGS1Wq32XsSj7KeffgIgJCTEziv5+1ksFjIyMnBycsJs1mcvD0r9jFM749TOOLUzTu2MUzvj1C5n1M84tTNO7YxTO+PUzji1M07tckb9jHPkdg8yw3X+qxcj/1xms9nhHlwPk/oZp3bGqZ1xamec2hmndsapXc6on3FqZ5zaGad2xqmdcWpnnNrljPoZp3bZo0JiWFpaGufPnyctLc3eS3kkqZ9xamec2hmndsapnXFqZ5za5Yz6Gad2xqmdcWpnnNoZp3bGqV3OqJ9xapc9GpiLYRaLhevXr2OxWOy9lEeS+hmndsapnXFqZ5zaGad2xqldzqifcWpnnNoZp3bGqZ1xamec2uWM+hmndtmjgbmIiIiIiIiIiIiICBqYi4iIiIiIiIiIiIgAYLJarVZ7L+JR9v3332O1WnF1dbX3Uv52VquV9PR0nJ2dMZlM9l7OI0f9jFM749TOOLUzTu2MUzvj1C5n1M84tTNO7YxTO+PUzji1M07tckb9jHPkdqmpqZhMJp588sn7/lnnv2E9/2iOdnDdzGQy4eLiYu9lPLLUzzi1M07tjFM749TOOLUzTu1yRv2MUzvj1M44tTNO7YxTO+PULmfUzzhHbmcymbI9x9UZ5iIiIiIiIiIiIiIiaA9zERERERERERERERFAA3MREREREREREREREUADcxERERERERERERERQANzERERERERERERERFAA3MREREREREREREREUADcxERERERERERERERQANzERERERERERERERFAA3MREREREREREREREUADcxERERERERERERERQANzERERERERERERERFAA3MREREREREREREREUADcxERERERERERERERQANzEREREXEAVqvV3kt4ZKmdcWpnnNoZp3Y5o37GqZ0x6pYz6mec2t2ds70XII+WHTt2kJiYiMlkombNmnh6etp7SY8kq9WKyWSy/dpisWA26/Or7FA749Tu4crqqY4PTu2MUzsREREREZG/lsmqjxMkm8aNG8fatWvx9fXlxIkTPPHEE7z22ms0b97c3kt7pMTExLB3716cnZ0pXbo0bdq0sfeSHhlqZ5zaPVzXrl0jPT2dAgUK2L52+wcScmdqZ5zaGRMdHc3Bgwc5e/Ysb7zxBpUqVSIwMNDey3okqJ1xamec2hmndjmjfsapnTHqljPqZ5za3Z8G5pItn332GcOGDWPatGmUKFGCxMRERowYQVxcHDVr1qR37972XuIjYdKkSaxYsYJ69epx9uxZjh49ir+/PxMmTNAPp/tQO+PU7uGaPn06n376KRcvXqR48eI0a9aMOnXq4OXlpbN+70PtjFM7YyZOnMiKFSt4/vnniY+P59tvv6V69eo0adKE0NBQey8vV1M749TOOLUzTu1yRv2MUztj1C1n1M84tcsmq0g2LF++3PrGG29YU1JSbF+7dOmSdfTo0daGDRtaJ02aZL/FPSJOnjxpffnll62ff/651Wq1WtPT060//PCDtUGDBtb69etb9+3bZ+cV5l5qZ5zaPVzz5s2zVq9e3bpy5Urr1q1brZ06dbI2bNjQOnjwYOtvv/1mtVqt1oyMDDuvMndSO+PUzpgjR45YGzRoYN29e7fta1u3brW2bdvW2rRpU+uWLVvsuLrcTe2MUzvj1M44tcsZ9TNO7YxRt5xRP+PULvt0OpLck/X3CxBcXFxIS0sjPj4egPT0dHx9fQkPD6datWrs2LGDjz/+2J5LzfUSExO5fv06xYoVA8DJyYnKlSsz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",
      "text/plain": [
       "<Figure size 1500x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAALACAYAAAAjcAneAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4W+Xd//H3OZqW5R2PxNkJSQhkMAJhz1AILZTRUkqg7AJhFR4oLW0foKXl97DKnmEUKKOsllloKS1QVsIKJIHs2E68lyxrn/P7Q7GIYyexHcfy+LyuK1eDdCR9pSOn/pz7vr+3Ydu2jYiIiIiIiIgMCma6CxARERERERGR3qOgLyIiIiIiIjKIKOiLiIiIiIiIDCIK+iIiIiIiIiKDiIK+iIiIiIiIyCCioC8iIiIiIiIyiCjoi4iIiIiIiAwiCvoiIiIiIiIig4iCvoiI9Du2bae7BBnC9P37lj4LEZGBSUFfRET6xDfffMPPfvYz9ttvP3bddVf2339/Lr30UpYsWdLuuEWLFvHTn/6011//qquu4tBDD93i/R9++CGTJ0/mww8/7PXX3tJrTZ48mXfffbfTY1auXJk6pry8fLtf89RTT+XUU0/t1mO29Zl15o477kjV3fZn6tSp7L333syfP5/ly5d36/m6o7y8nMmTJ/P8888D3T+n0WiUP/zhD7z00ku9Us+hhx7KVVdd1SvP1ROnnHIKkydP5tVXX+3R41esWMHJJ5/cy1UlPf/887323RYRkY4U9EVEZIdbvnw5J510EvX19Vx99dU89NBDXHnllaxfv56TTjqJzz77LHXsX/7yF1asWNHnNe6yyy48/fTT7LLLLn32mqZp8tprr3V6X0/DWX/x9NNPp/489thj/OpXv2Lp0qWccsop1NTU9EkN3T2n1dXVPPLII8Tj8R1c2Y63du1aFi5cyKRJk3jyySd79ByvvfYan376aS9XJiIifUFBX0REdriHH36Y3NxcHnzwQebOnctee+3FMcccwyOPPEJ+fj533313ukvE7/czc+ZM/H5/n73m7rvvzj/+8Y9Og+Wrr77Kzjvv3Ge19LaZM2em/uyxxx5873vf4//+7/9oamrihRde6JMa0nFO+4vnnnuOkpISLrjgAj766CNWrlyZ7pJERKQPKeiLiMgOV1tbC3Rc7+vz+fjFL37BUUcdBSSnir/wwgtUVFS0m4JdXl7OlVdeyf77788uu+zCPvvsw5VXXklDQ0PquWzb5oknnuDoo49m+vTpzJkzhwceeGCLa4yXLFnCnnvuyVlnnUU0Gu0wzfuOO+5gzpw5vP3223zve99j11135Tvf+U6HkLpy5UrOOeccdt99d/bdd19uvfVWfvGLX3RpmvzcuXNpbGzkv//9b7vbly1bxpo1a1Kfy6YWL17MWWedxd57783uu+/Oeeed12E6/Pr167nwwgvZY4892G+//Xj44Yc7ff2//OUvHH300ey6664cfPDB3HHHHVsdzW6blt/T6da77rorABUVFannmzNnDnfeeSd77703hx9+eOqcdqW2N954g2OOOYbp06dz3HHHsWzZsnb3dzZ1/8svv+Tss89mjz32YPbs2fzsZz9jw4YNlJeXc9hhhwHwi1/8ot2ShYULFzJv3jxmzJjBXnvtxc9//nPq6+vbvdayZcs444wz2G233TjkkEP429/+ttXPorKykp133plHH3203e3Nzc1MmzaNBx98EID//ve/nHTSSey2227MmjWLCy64gFWrVm31uROJBC+++CIHH3wwhx56KFlZWTz99NMdjtvaz8wdd9zBnXfeCcDkyZO54447Ovy9Tdv3YlN/+ctfOP7445k5cybTp0/n2GOPHfCzVEREBhIFfRER2eEOPvhg1q9fz49+9COeeOIJVq5cmQrgRx55JMcddxwAF1xwAQcddBCFhYU8/fTTHHzwwYRCIU477TRWrlzJ//7v/7JgwQLmzZvHyy+/zC233JJ6jVtuuYXrr7+egw46iHvuuYcf/OAH3HrrrZ3OFli5ciVnnXUW06dP5+6778btdndad01NDddddx2nnXYa999/PyNHjuSqq65KjY7W19czb948NmzYwB/+8Ad+9atf8frrr/Pyyy936XOZOHEiO+20U4fp+6+88gp77bUXhYWF7W7/4IMPOPnkk7Esi+uvv57f/e53bNiwgR/96EepmlpbW5k3bx7Lli3juuuu4ze/+Q1/+ctfOkzBvu+++/j1r3/NPvvsw7333sspp5zCAw88wG9+85st1vuDH/yAp59+mqKioi69v82tXr0agNGjR6duW79+PW+++Sa33HILl156KXl5eV2q7a233uLiiy9mp5124s477+Soo47iiiuu2OrrL1u2jJNPPplQKMQNN9zAddddx5IlSzjzzDMpKipKBdvzzz8/9fePP/6Y008/Ha/Xyx//+Ed++ctf8tFHH3HaaacRDocBqKqqYt68eTQ1NXHjjTdyySWXcNNNN1FVVbXFWkpKSth77707hN+///3vxONxvve971FWVsb555/PLrvswj333MPvfvc7Vq1axbnnnotlWVt87nfffZeqqiqOO+44PB4Pc+fO5cUXX0zV22ZrPzM/+MEPOPHEE4HkMowf/OAHW/1sN/XEE0/wm9/8hsMOO4z77ruPG2+8EZfLxRVXXMH69eu7/DwiItJzznQXICIig9+Pf/xjampqWLBgAddddx0AeXl57L///px66qnMmDEDSAbA/Px83G43M2fOBGDp0qWUlJRwww03pALi7NmzWbx4MR999BGQHAV9+OGHOfXUU7nyyisB2G+//aivr2fRokXtaikrK+P0009n8uTJ3H333Xg8ni3WHQqFuP7669lnn30AGDt2LIcccgj//ve/mTBhAo899hjBYJAXX3yR4uJiAGbMmMF3vvOdLn82Rx11FI8++iixWAyXywUkp+2fd955HY69+eabGTVqFA8++CAOhwOA/fffnzlz5nDHHXfwxz/+kRdeeIH169fz17/+NTXK2jZa2yYQCHDPPfdw0kkn8atf/Sr1PLm5ufzqV7/ijDPOYKeddurw+iUlJZSUlHTpfW06+h4Oh1m2bBm///3vycrK4phjjml33M9//nP23XffbtV21113scsuu3DzzTcDcOCBB6Y+oy25++67ycnJ4aGHHkqd95KSEi699FK++eab1FKJ0aNHM3Xq1NTzjRs3jvvuuy/1mc+YMYOjjz6a5557jlNOOSW1rv+BBx6goKAAgHHjxvHDH/5wq5/Rsccey1VXXUV5eTkjR44E4OWXX2b27NkUFxfzyiuvEA6H+elPf5r6fg0fPpx//vOftLa2bnFJwnPPPcf48eNTP0MnnngiTz/9NK+99lrqotq2fmbmz5+fOtdtz9NVZWVlnHnmmcyfPz9128iRIzn++OP55JNPGDFiRLeeT0REuk8j+iIi0icuueQS3nnnHW6++WZOPPFE/H4/L730EieddFKH6cub2nnnnfnzn//MyJEjKSsr45133uGhhx5i1apVxGIxAD777DNisVi7MAvJpQAPPfRQ6r+DwSCnn356aqTe6/Vus+5NQ05b8GltbQWSI+y77bZbKoQBlJaWsttuu237A9lo7ty5NDU1pabvf/7551RVVXHEEUe0O661tZXFixczd+7cVOAEyM7O5pBDDklNT1+4cCGjRo1qN5V6+PDh7d7Hp59+SigU4tBDDyUej6f+tE1Xf++997pc/5bssssuqT977LEHp5xyCpFIhDvuuKPDTIVJkyZ1q7ZwOMxXX32VmmrfprOlDptatGgRBx54YLuLO9OnT+ett95KLSvYVCgU4vPPP+eggw7Ctu1ULaNGjWLChAmpz2nRokXMnDkzFfIheTFgW4H2iCOOICMjIzWqX1NTw0cffcSxxx6beg6Px8OJJ57IH/7wB/773/8yZcoUfvazn20x5Dc0NPDWW29x1FFH0dzcTHNzM2PHjmXcuHE89dRTqeO6+jPTE1dddRVXXHEFgUCAxYsX89JLL/HEE08ApH5mRURkx9KIvoiI9JmcnBy++93v8t3vfhdIrpO/8soruemmmzjmmGPIy8vr9HEPP/ww9913Hw0NDQwbNoxddtmFjIwMAoEAAI2NjQDk5+dv9fUbGxsZN24cLS0t/N///V9qevbWZGRkpP5umsnr423LDurr6zvt6F5YWNjlzvLjxo1j55135vXXX+eggw7i1VdfZf/99ycnJ6fdcYFAANu2GTZsWIfnGDZsWOqzaGpq6vRzKCwsTPVKaPu8zj333E5rqq6u7lLtW/Pss8+m/u5yuSgsLGwXhDe16XvqSm1NTU3Ytt3hfW5rSUFjY+MWa+hMc3MzlmXxwAMP8MADD3S4v+2CQVNTU2pEflObX9DYXGZmJocffjivvvoq5557Lq+88goejycVvkeOHMnjjz/O/fffzzPPPMMjjzxCdnY2P/7xj7nkkktS38dN/fWvfyUWi3HXXXdx1113dbh/2bJlTJkypcs/Mz2xbt06fvOb3/DBBx/gdDoZP3586sLTlnpmiIhI71LQFxGRHaqqqooTTjiBSy65pMM636lTp3LppZcyf/58ysrKOg36L730EjfccAOXX345J554YiqYXHLJJSxevBhIjmpDMniPHz8+9dgNGzawdu1a9thjDwByc3NZsGABr7zyCr/+9a954403Ooycd0dJSQl1dXUdbu/stq2ZO3cuDzzwANdeey2vv/46//M//9PhmKysLAzDSIX1TdXU1JCbmwskl0SsXbu2wzFtwQ6+/bxuuukmxo4d2+HYzi4mdNe0adN69Liu1Jabm4tpmh0+i03fY2eysrI6NNED+Pe//82UKVM63J6ZmYlhGJx++ukcffTRHe5vuwiUl5fX6XnZVj2QnL5/9tlns2bNGl555RUOP/xwMjMzU/dPnz6dO++8k2g0yqJFi3j66ae59957mTx5MnPnzu3wfM8//zwzZszg8ssvb3d7OBzm/PPP58knn+Taa6/t8s9MZxKJRLv/bpvhAmBZFueeey4ul4tnnnmGqVOn4nQ6WbFixTYbFIqISO/R1H0REdmhhg0bhtPp5M9//jORSKTD/atWrcLj8TBmzBiADqOUixYtIisri3PPPTcV8oPBIIsWLUo1JJs+fToul4t//vOf7R776KOPcskll2AYBpAMbpmZmfzgBz9gt91247rrrqO5ubnH723WrFl8+umn7Ubva2pq+Oyzz7r1PG3TrO+++26ampradXxv4/P52HXXXXn11VfbBa1AIMDbb7+dCmazZ8+mvLw8dREEkmFu05pmzJiBy+WiqqqKadOmpf64XC5uvvnmHnfV7w1dqc3j8bDbbrvxxhtvtBshfuutt7b63HvuuSfvvPMO0Wg0ddvXX3/Nueeey+LFi9stiYDk9nxTp05l1apV7WppawDYtlxi9uzZfPrpp+2a761YsYKysrJtvt99992XwsJCHnvsMb744ovUtH2ARx55hEMPPZRoNIrb7Wafffbht7/9LZAM5JtbvHgxX3/9Nccffzx77713uz8HHXQQ+++/Py+99BLBYLBLPzOdzRjw+/1UVla2u+2TTz5J/b2hoYHVq1dz4oknMn36dJzO5JjSf/7zH4CtNhEUEZHeoxF9ERHZoRwOB9dccw3z58/nhBNO4JRTTmHChAmEQiHee+89nnjiCS655JLUVPXs7Gxqa2v597//zc4778z06dN58sknueGGGzjkkEOorq5mwYIF1NbWph6Tn5/PaaedxqOPPorb7U4163v88ce57LLLUmGjjWEYXHvttRx//PH8v//3/7j++ut79N5OO+00nnjiCc4666xU47G77rqLaDSaurjQFaNGjUptqTZnzpx2I7qbuvzyyznrrLM4++yzmTdvHrFYjPvvv59oNMqFF14IJEeI//SnP3HhhRem1nLfc8897QJWXl4eZ599NrfddhstLS3svffeVFVVcdttt2EYRqej25DcEq6yspKpU6ducaeC7dXV2i677DJ+8pOfcOGFF3LSSSexZs0a7rnnnq0+9wUXXMBJJ53EOeecw09+8hOi0Si33XYbu+yyCwceeGDqAsD777/PhAkTmDFjBpdddhnnnnsul19+OccccwyJRIKHHnqIzz//nPPPPx+An/zkJzz77LOcddZZXHTRRSQSCf74xz+mmitujcPh4Hvf+x6PPvoohYWFqaaEkLyAcNNNNzF//nzmzZuHw+Hgqaeewu12c8ghh3R4rueeew6Xy7XFZpDf//73+fe//81LL73Ej370o23+zLSN+r/88svMmDGDUaNGcfDBB/PKK68wffp0xo0bxwsvvNBuBklBQQGlpaU88cQTlJSUkJ2dzbvvvpvqwxEKhbb5mYiIyPbTiL6IiOxwBx98MM888wyTJk3i3nvv5ayzzuKyyy5j6dKl3Hrrre3WYx9//PGUlpYyf/58XnzxRY477jjmz5/Pa6+9xjnnnMPtt9/OnnvuyXXXXUdjYyMrVqwA4IorruDyyy9PrXd+4YUX+OUvf8mZZ57ZaU2TJ0/mtNNO49lnn+X999/v0fvKzs7mT3/6E/n5+Vx55ZVce+21HHHEEcyYMQOfz9et55o7dy6xWKzTKeJt9tlnHx5++GGi0SiXXXYZv/71rykuLuaZZ55Jdcl3u908+uijzJo1i+uvv55f/vKX7LPPPh2C4aWXXspVV13Fm2++yTnnnMONN97IHnvsweOPP05WVlanr/+Xv/yFk046qVfW8G9NV2rbc889eeCBB6iqquLCCy/kqaee4ve///1Wn3fq1Kk89thjWJbFz372M6677jpmzpzJAw88gNvtxu/3c8YZZ/CPf/yDs88+m2g0yv7778+CBQuorKzk4osv5sorr8ThcPDwww+nGhzm5eXx5JNPprZf/P3vf8+Pf/zjLV4w2dyxxx5LIpHg6KOPbjerYMqUKdx77720tLRw2WWXceGFF9LY2MhDDz3Ubro9QCQS4ZVXXmG//fbbYq+Lww8/nOzs7FRTvm39zBxxxBFMmzaNq666igULFgDwi1/8gkMPPZQbb7yRiy++mIyMjA7LBO6++26Ki4u56qqruPTSS/nss8+45557GD9+PAsXLuzSZyIiItvHsNUVRUREpEc+//xzGhsbOeigg1K3xeNxDj74YI4++mh+8YtfpLE6ERERGao0dV9ERKSH1q9fz89+9jPmz5/PXnvtRSgU4qmnniIQCGxzD3URERGRHUUj+iIiItvhySef5M9//jNlZWW4XC5mzJjBJZdc0uOu8yIiIiLbS0FfREREREREZBBRMz4RERERERGRQURBX0RERERERGQQUdAXERERERERGUTUdb8HPv30U2zbxuVypbsUERERERERGQJisRiGYbDbbrtt81iN6PeAbdsMtB6Gtm0TjUYHXN3SO3T+Rd+BoU3nf2jT+R/adP6HNp3/waU7OVQj+j3QNpI/kLZOam1tZenSpUycOBGfz5fucqSP6fyLvgNDm87/0KbzP7Tp/A9tOv+Dy+LFi7t8rEb0RURERERERAYRBX0RERERERGRQURBX0RERERERGQQUdAXERERERERGUQU9EVEREREREQGEQV9ERERERERkUFEQV9ERERERERkEFHQFxERERERERlEnOkuQPqG05lg+PBMXK4AEEp3ObJNBskfTx/6MRURERERke5QghjUwkAtUIlhfIPbvR7DyAQcaa5Lts0k+eOZB4wHioAC9CMrIiIiIiLbotQwaLUAHwBLgQYgQjRag20XAq60VibdsQb4EhgG7AHMRD+2IiIiIiKyNUoMg1KQZMj/CIimuRbZfjFgA/Cfjf89E/3oioiIiIjIlqgZ36C0AoX8waiZ5AWc9ekuRERERERE+jEF/UEnCqxEIX+wqiM5ui8iIiIiItI5Bf1Bpw6oTHcRssPYwCqgNd2FiIiIiIhIP6WgP+g0A43pLkJ2qAYgkO4iRERERESkn1LQH3TiJJu3yeAV3/hHRERERESkI7XuHnQSJKd3b92pp/6Tjz6qZrfdhvHUU3M6PeZnP3uPV19dx3HHjeOGG2Z3uP+UU/7BwoU13HrrvsydO6bD/Vdd9QEvvLB6izXk5rr58MMTtlnrlvzjH+XMn/8Of/rToey9d/FWj124sJpbbvmCZcsayM52c/jhI7n00un4/d9uNVhW1sLNN3/OwoU1hEJxdtoph0sumcY++5SkjgkEotx00+e8+WYZra1xpkzJ44ILduHAA0ekjrEsm4cfXsZTT62gsrKV0tJMTj55J047bRKGYXSrps4lAKtbn5WIiIiIiAwdCvqDzrZDfhvTNPjss1o2bAgyfHhmu/tCoThvv73l7u5r1wZYuLCGSZNyePLJFZ0GfYDCQi933nlAp/c5nT2fUNLQ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Ew6Hcbvd7Y7zeDwARCKR1Je7s2Oampp6XEssFmPp0qU9fny6rFmzJt0lSBrp/Iu+A0Obzv/QpvM/tOn8Dx22bZP4aCF2YyOu78wBoCIQgO/NZVVDPTTUp7lC2R6b59otGVBBf+LEiQD89re/5bPPPuPxxx/H6/V2aKoX2XiFyufz4fV6AYhGo6m/tx2TkZHR41pcLleqnoEgFAqxZs0axo4du13vWwYmnX/Rd2Bo0/kf2nT+hzad/6ElvKGSdfc9QOTrbwAYefhhVDlMnf9BYtOd57al3wf9uro63n//fY466igcDgcApmkyYcIEqqurKSkpobq6ut1j2v67uLiYeDyeum306NHtjpkyZUqP6zIMA5/P1+PHp0tGRsaArFt6h86/6DswtOn8D206/0Obzv/gZicSrH/5VdY9/mesaBTT62Xs6aeSPXVnqr7+Wud/kOjqtH0YAM34qqurufzyy/noo49St8ViMZYsWcKECROYNWsWixYtIpFIpO5///33GTduHAUFBUyZMgW/38+HH36Yur+5uZklS5aw55579ul7ERERERER6U2t5RUs/sWvWfPQI1jRKDnTp7Hb7bcy/KgjMcx+H/dkB+n3I/pTpkxh//3359prr+V3v/sd2dnZ3HvvvTQ3N3P66afj8Xh48MEHufrqqzn77LP54osvePTRR7n22muB5BqGefPmcdNNN5Gfn09paSk33ngjJSUlzJkzJ83vTkREREREpGeseJwl11xHpKYWR0YGY884jeIj5nRr5FcGp34f9A3D4I9//CM333wzl156KYFAgD333JMnnniCESOSW0I8+OCDXH/99Rx33HEUFhZy5ZVXctxxx6We4+KLLyYej/OrX/2KcDjMrFmzWLBgQZcbGYiIiIiIiPQ3ptPJ2DN+QtWb/2Ti/PPwFBamuyTpJ/p90AfIysrimmuu4Zprrun0/unTp/P0009v8fEOh4MrrriCK664YgdVKCIiIiIismPZiQQVL/wV7/DhDNtvHwCG7bcvBfvuo1F8aWdABH0REREREZGhLLh2HStuv5OWFStxZmeTO2MaTr8f6F6TNhkaFPRFRERERET6KSsep+L5Fyl7+i/Y8TiOzEzGnfETHJmZ6S5N+jEFfRERERERkX4ouGYNy2+7k+Cq1QDkzdqTCef/FE9Bfpork/5OQV9ERERERKSfCVdX8/nl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QXEdB8PM13SsPPkkmv7mfVSeeAJlRy0r8shERERERESmJ1XdlwPWs249f77642SGz+IDzPn7DyrIFxERERERKSIF+rLfsoNxXrv167zypZtItbTQ8uDDxR6SiIiIiIiIDFPqvuyXnrV/ZMu37ybb3w+mycx3X8jsD36g2MMSERERERGRYQr0ZZ9kBwbYetd36H76GQBCs5pYdM1VxBYvKvLIREREREREZHcK9GWf7Prpz/NBvmnSdNG7mfW3f4Pp8xV7WCIiIiIiIrIHBfqyT5re/16SO3cy62/eT3ThgmIPR0RERERERCagYnwyhuu6dD31NJu+9J+4jgOAJxhk2Wc/rSBfRERERERkktOOvoxi9fWx5Y676F33LABdT/6OurPfUuRRiYiIiIiIyL5SoC/A8C7+737Ptru/Q25oCMPjoelv3kfNGacXe2giIiIiIiKyHxToC5meXrbccSd9658DIDJ/HouuuYrIvLnFHZiIiIiIiIjst0l/Rr+5uZkrrriC5cuXs3z5cj7+8Y/T3t4+6j5r167loosu4rjjjuNtb3sbjzzyyKjrmUyGL3zhC6xatYoTTzyRa665hp6eniP4Kia31279Gn3rn8Pwepn99x/kuJtvUpAvIiIiIiIyRU3qQD+TyXDJJZcAcP/993PvvffS1dXF5Zdfjuu6AGzZsoXLL7+cM888k0ceeYQPfOADfPazn2Xt2rWF5/n85z/PM888w2233caaNWvYuXMn1157bTFe0qQ077J/JLZkCcffejOz/uZ9mF4leoiIiIiIiExVkzqi27VrF8ceeyyf+9znqKqqAuCSSy7hyiuvpK+vj6qqKtasWcPSpUsLgfv8+fN5+eWXueeee1i1ahUdHR088sgj3HnnnSxfvhyAW2+9lfPOO4/nn3+eE044oVgvryhc16XjiV+Tiw8x8z3vAiA6fx7H/ucXMQyjyKMTERERERGRgzWpd/TnzZvH17/+9UKQ39LSwn333cfRRx9NZWUlAM899xwrV64c9biVK1eyYcMGXNdlw4YNAKxYsWLU89bX17N+/foj9EomB3dgkC033czm225nx70/JNm8s3BNQb6IiIiIiEhpmNQ7+ru79NJLeeaZZygvL2fNmjWFwLS9vZ2GhoZR962rqyOVStHX10dHRweVlZUEAoEx92lrazvg8biuSzKZPODHH0mu69L+2K/I3P8/ZCwLw+ej8f3vxa2smDKvQQ5OKpUa9adMP/oMTG+a/+lN8z+9af6nN81/aXFdd583aIsa6Le0tHDOOedMeP3pp5+mtrYWgH/913/l2muv5Y477uCSSy7hkUceobGxkXQ6jd/vH/W4kb9blkUqlRpzHSAQCJDJZA547Nlslk2bNh3w448Ut3+A7M8fxdm6DQCjaSa+Cy+gt6aG3tdeK/Lo5Ejbvn17sYcgRabPwPSm+Z/eNP/Tm+Z/etP8l47xYtvxFDXQr6+v59FHH53w+kjKPsCyZcsA+OpXv8pZZ53FQw89xFVXXUUgEMCyrFGPG/l7KBQiGAyOuQ75Qn+hUOiAx+7z+Vi4cOEBP/5IcCyLl67+OM7gIIbPh+ctZ7Lgb95HOBIp9tDkCEulUmzfvp25c+ce1Odepi59BqY3zf/0pvmf3jT/05vmv7Rs3rx5n+9b1EDf5/OxYMGCCa+3trby4osv8va3v71wWygUoqmpic7OTgAaGxsL/z2is7OTcDhMLBajoaGB/v5+LMsatfrR2dk5JuV/fxiGQTgcPuDHHxHhMLPe/1561v6RmR+5lG39fYQjkck/bjlsQqGQ5n+a02dgetP8T2+a/+lN8z+9af5Lw/7UVZvUxfg2bdrENddcQ3Nzc+G2wcFBtm3bVlggWL58Oc8+++yox61du5aTTjoJ0zQ5+eSTcRynUJQPYOvWrXR0dBSq8JeyxneezzFf/P8INh74ooaIiIiIiIhMHZM60F+9ejVLlizhU5/6FC+99BIvvvgiV199NZWVlbz3ve8F4OKLL2bjxo3ccsstbNmyhe9+97s89thjfOQjHwHyxwMuuOACrr/+etatW8fGjRv55Cc/yamnnjotWusZpolhTuppFhERERERkUNoUkeAfr+fe+65h5kzZ3LZZZfxD//wD5SXl/ODH/yAaDQKwKJFi7j99tv53e9+x7vf/W4eeOABbr75ZlatWlV4nhtuuIFVq1Zx1VVXcdlllzF//ny+8Y1vFOtliYiIiIiIiBw2k769Xl1dHV/5ylfe9D6rV69m9erVE14Ph8PceOON3HjjjYd6eCIiIiIiIiKTyqTe0RcRERERERGR/aNAX0RERERERKSEKNAXERERERERKSEK9EVERERERERKiAJ9ERERERERkRKiQF9ERERERESkhCjQFxERERERESkhCvRFRERERERESogCfREREREREZESokBfREREREREpIQo0BcREREREREpIQr0RUREREREREqIAn0RERERERGREqJAX0RERERERKSEKNAXERERERERKSEK9EVERERERERKiAJ9ERERERERkRKiQF9ERERERESkhCjQFxERERERESkhCvRFRERERERESogCfREREREREZESokBfREREREREpIQYruu6xR7EVPOnP/0J13Xx+/3FHso+c12XbDaLz+fDMIxiD0eOMM2/6DMwvWn+pzfN//Sm+Z/eNP+lxbIsDMPgpJNO2ut9vUdgPCVnKn6TGIYxpRYm5NDS/Is+A9Ob5n960/xPb5r/6U3zX1oMw9jnWFQ7+iIiIiIiIiIlRGf0RUREREREREqIAn0RERERERGREqJAX0RERERERKSEKNAXERERERERKSEK9EVERERERERKiAJ9ERERERERkRKiQF9ERERERESkhCjQFxERERERESkhCvRFRERERERESogCfREREREREZESokBfREREREREpIQo0BcREREREREpIQr0S0xzczNXXHEFy5cvZ/ny5Xz84x+nvb191H3Wrl3LRRddxHHHHcfb3vY2HnnkkVHXM5kMX/jCF1i1ahUnnngi11xzDT09PUfwVciBamtr4xOf+ASnnXYap5xyCpdddhmvv/76qPto/qeH6667jk9/+tNjbtf8Ty+O4/CNb3yDM844g+OPP55LL72UHTt2FHtYchjcfvvtXHzxxaNu27RpEx/60Ic44YQTOOuss/jOd74z6ro+H1Nbf38///Ef/8Hq1as56aST+OAHP8hzzz1XuK75L209PT3867/+KytXruTEE0/kox/9KJs3by5c1/yLAv0SkslkuOSSSwC4//77uffee+nq6uLyyy/HdV0AtmzZwuWXX86ZZ57JI488wgc+8AE++9nPsnbt2sLzfP7zn+eZZ57htttuY82aNezcuZNrr722GC9J9oNlWXz0ox+lp6eHO++8k/vuu49YLMaHP/xhent7Ac3/dGDbNv/5n//Jgw8+OOaa5n/6uf322/nRj37EjTfeyP/8z/9gGAb/9E//hGVZxR6aHEL//d//zTe+8Y1Rt/X19fGP//iPzJ07l4ceeoirr76ar3/96zz00EOF++jzMbV94hOf4C9/+Qu33norDz74IEcffTSXXXYZW7Zs0fxPA1dccQU7d+7k7rvv5sEHHyQYDHLJJZeQSqU0/5LnSsnYunWre80117g9PT2F2371q1+5ixcvLtz27//+7+773//+UY/7xCc+4V566aWu67pue3u7u3TpUvd3v/vdqOddvHix++c///nwvwg5YM8884y7ePFit729vXBbJpNxjz/+ePeBBx5wXVfzX+o2b97svv/973dXrlzpnnXWWe6//du/jbqu+Z9eMpmMe+KJJ7r33Xdf4baBgQH3uOOOc3/+858XcWRyqLS3t7uXXXaZe8IJJ7jnnXee+6EPfahw7dvf/rZ7xhlnuNlstnDbV77yFfftb3+767r6fEx127dvdxcvXuxu2LChcJvjOO65557rfu1rX9P8l7je3l734x//uPvaa68Vbtu0aZO7ePFi9y9/+YvmX1zXdV3t6JeQefPm8fWvf52qqioAWlpauO+++zj66KOprKwE4LnnnmPlypWjHrdy5Uo2bNiA67ps2LABgBUrVox63vr6etavX3+EXokciEWLFnHXXXdRX18/6nbXdRkYGAA0/6Xu2WefZdmyZfz85z+nqalpzHXN//TyyiuvkEgkRs15WVkZRx11lOazRLz00kuUl5fz05/+lOOPP37Uteeee45TTjkFr9dbuG3lypVs27aNnp4efT6muMrKSu666y6OOeaYwm2GYRR+5mv+S1tlZSW33norixYtAqC7u5vvfOc7NDQ0sHDhQs2/AODd+11kKrr00kt55plnKC8vZ82aNRiGAUB7ezsNDQ2j7ltXV1dI8+no6KCyspJAIDDmPm1tbUds/LL/amtrOfPMM0fd9v3vf59MJsNpp50GaP5L3Qc/+ME3va75n15G6rM0NjaOul3zWTrOPvtszj777HGvtbe3s3jx4lG31dXVAbBr1y59Pqa4srKyMT/z/+///o/m5mZOP/10vvrVr2r+p4l///d/58c//jF+v5877riDcDis738BFOhPKS0tLZxzzjkTXn/66aepra0F4F//9V+59tprueOOO7jkkkt45JFHaGxsJJ1O4/f7Rz1u5O+WZZFKpcZcBwgEAmQymUP4amR/7c/8Azz++ON89atf5eKLL2bp0qUAmv8pbH/nfzya/+kllUoBjJnTQCBQyPKR0jXe9/vIIl4mk9Hno8Rs2LCBz372s5xzzjmcffbZfPnLX9b8TxMf/vCH+cAHPsD999/PlVdeyX333afvfwEU6E8p9fX1PProoxNeH0nZB1i2bBkAX/3qVznrrLN46KGHuOqqqwgEAmOKbIz8PRQKEQwGxy3CkclkCIVCh+JlyAHan/m///77ueGGGzj//PP5zGc+U7hd8z917c/8T0TzP70Eg0EgP8cj/w2az+livO/nkQW7cDisz0cJeeKJJ/iXf/kXjj/+eG699VZA8z+dLFy4EIAbbriB559/nh/84AeafwEU6E8pPp+PBQsWTHi9tbWVF198kbe//e2F20KhEE1NTXR2dgL5FJ2R/x7R2dlJOBwmFovR0NBAf38/lmWNWuXr7Owck/IrR9be5n/ELbfcwt13383FF1/MddddVzi2AZr/qWxf5//NaP6nl5GUzM7OTmbPnl24vbOzs5DlI6WroaFh3O93yC8c5nK5wm36fExdP/jBD/jiF7/Iueeeyy233FL4t1vzX9p6enpYu3Yt73jHO/B4PACYpsmCBQsKP7M1/6JifCVk06ZNXHPNNTQ3NxduGxwcZNu2bYUAYfny5Tz77LOjHrd27VpOOukkTNPk5JNPxnGcQlEugK1bt9LR0cHy5cuPzAuRA3bzzTdz991386lPfYrrr79+VJAPmv/pTvM/vSxdupRoNMq6desKtw0ODvLyyy9rPqeBU045hQ0bNmDbduG2tWvXMm/ePKqrq/X5KAH33XcfN9xwA3//93/P1772tVELtJr/0tbZ2cknP/nJUT/Ts9ksL7/8MgsWLND8C6BAv6SsXr2aJUuW8KlPfYqXXnqJF198kauvvprKykre+973AnDxxRezceNGbrnlFrZs2cJ3v/tdHnvsMT7ykY8A+VW+Cy64gOuvv55169axceNGPvnJT3LqqadywgknFPHVyd6sW7eOe+65h4svvpgLL7yQrq6uwv8SiQSg+Z/uNP/Ti9/v50Mf+hC33HILv/71r3nllVf4+Mc/TkNDA+eee26xhyeH2Xvf+16Ghoa47rrr2Lx5Mw8//DBr1qzh8ssvB/T5mOq2bdvGl770Jc4991wuv/xyenp6Cj/z4/G45r/ELV26lNNPP50vfOELPPfcc7z22mv827/9G4ODg1xyySWafwHAcF3XLfYg5NDp7OzkP//zP3nmmWewLIvTTz+dz3zmM6Oqaj711FPcfPPNbN++naamJq6++mrOP//8wvVkMsmXvvQlHnvsMSC/gHD99dcXWvTJ5DRSdXU8V111FVdffTWg+Z8uLr74YmbOnMlNN9006nbN//Ri2za33norDz/8MOl0mlNOOYX/+I//GLf9okxtn/70p2ltbeXee+8t3LZx40a++MUv8vLLL1NbW8ull17Khz70ocJ1fT6mrm9/+9t89atfHffae97zHm666SbNf4mLx+N85Stf4YknniAej7N8+XI+/elPF1ruaf5Fgb6IiIiIiIhICVHqvoiIiIiIiEgJUaAvIiIiIiIiUkIU6IuIiIiIiIiUEAX6IiIiIiIiIiVEgb6IiIiIiIhICVGgLyIiIiIiIlJCFOiLiIjIEaOuviIiIoefAn0RERHZJ5/61KdYsmQJd911134/tr29ncsvv5zW1tZDPq5169axZMkS1q1bd8ifW0REZCpSoC8iIiJ7NTQ0xOOPP87ixYv58Y9/vN8783/4wx948sknD8/gREREZBQF+iIiIrJXv/jFL7Btm+uvv56dO3fy9NNPF3tIIiIiMgEF+iIiIrJXDz30ECtWrGDFihXMmzePH/3oR2Pu84tf/IKLLrqI448/nrPOOoubb74Zy7J4+OGH+cxnPgPAOeecw6c//WkAzj777MJ/j3j44YdZsmQJLS0thdueeOIJ/u7v/o4TTzyRY445hvPOO48f/OAHh/HVioiITG0K9EVERORNbdmyhb/85S+85z3vAeCiiy7it7/9LR0dHYX7/OhHP+ITn/gEy5Yt45vf/CaXX3459913H5///Oc566yzuOKKKwD45je/ycc+9rF9/tpPPvkkV155JUcffTS33347t912GzNnzuSGG27gT3/606F9oSIiIiXCW+wBiIiIyOT24IMPUlZWxlvf+lYA3v3ud/O1r32NBx54gKuuugrHcbjttts499xz+eIXv1h4XCaT4Sc/+QnRaJTZs2cDsGzZMpqamvb5a2/evJl3v/vdXHfddYXbTjzxRFasWMH69es56aSTDtGrFBERKR0K9EVERGRCuVyOn/70p7z1rW8lk8mQyWQIBoOsWLGCBx54gCuuuILt27fT3d1dWAgYcckll3DJJZcc1Nf/yEc+AkAymaS5uZlt27bxwgsvAJDNZg/quUVEREqVAn0RERGZ0JNPPkl3dzcPP/wwDz/88Jjrv/3tb6msrASgurr6kH/93t5ePve5z/HEE09gGAZz5szh5JNPBtjvyv8iIiLThQJ9ERERmdCDDz7IzJkz+fKXvzzm2jXXXMOPfvQj/u3f/g3IB+W76+/v56WXXuKEE06Y8Plt2x7192QyOerv//Iv/8KWLVv43ve+x0knnYTf7yeVSvHAAw8c4CsSEREpfQr0RUREZFzd3d38/ve/59JLL2XFihVjrp9//vn86Ec/IhAIUFlZya9//Wve9a53Fa7/7Gc/48tf/jJPP/00pjm2/m80GqW9vX3UbXsW2NuwYQMf+MAHWLlyZeG2p556CgDHcQ7q9YmIiJQqVd0XERGRcf3kJz8hl8txwQUXjHv9Pe95D47j8MADD3D11Vfz2GOP8fnPf55nnnmGH/7wh3zta1/jgx/8IFVVVZSVlQHwq1/9ii1btgDwlre8hfXr1/Ptb3+bP/7xj9x0002sXbt21Nc47rjj+NnPfsb//u//sm7dOr797W/z6U9/GsMwSKVSh/cNEBERmaK0oy8iIiLj+slPfsKiRYtYunTpuNePO+445s+fz0MPPcSTTz5JOBzmO9/5Dg8++CD19fVceumlfPSjHwVgxYoV/NVf/RVf+cpXWLt2LXfddReXX345vb29fPe73yWbzXLWWWfxxS9+sdCKD+Cmm27ihhtu4IYbbgBg7ty5fOELX+CnP/0pzz333OF/E0RERKYgw1UlGxEREREREZGSodR9ERERERERkRKiQF9ERERERESkhCjQFxERERERESkhCvRFRERERERESogCfREREREREZESokBfREREREREpIQo0BcREREREREpIQr0RUREREREREqIAn0RERERERGREqJAX0RERERERKSEKNAXERERERERKSEK9EVERERERERKyP8PBs7br1h6efUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "========== 美股价格预测模型训练流程完成 (Stacking版) ==========\n",
      "\n",
      "结果摘要:\n",
      "- stacking_mae: 4.82998\n",
      "- base_model_maes: [4.894288828582955, 4.878010056560426, 5.179062612053428]\n",
      "- meta_model_mae: 4.82998\n"
     ]
    }
   ],
   "source": [
    "# main.py\n",
    "import os\n",
    "import pickle\n",
    "from datetime import datetime\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "\n",
    "# 设置全局配置\n",
    "DEBUG = True\n",
    "SAMPLE_SIZE = 10000\n",
    "RANDOM_SEED = 42\n",
    "\n",
    "# ======================== 主流程控制函数 ========================\n",
    "\n",
    "def plot_predictions_over_time(y_true, y_pred, dates=None, title='predicted_vs_actual'):\n",
    "    \"\"\"\n",
    "    绘制按时间顺序的预测值与实际值对比折线图，以及单独的实际值折线图\n",
    "    \n",
    "    参数:\n",
    "    y_true: 实际值\n",
    "    y_pred: 预测值\n",
    "    dates: 日期序列，如果为None则使用索引\n",
    "    title: 图表标题\n",
    "    \"\"\"\n",
    "    import matplotlib.pyplot as plt\n",
    "    import pandas as pd\n",
    "    import numpy as np\n",
    "    \n",
    "    # 创建数据框\n",
    "    results_df = pd.DataFrame({\n",
    "        'Actual': y_true,\n",
    "        'Predicted': y_pred\n",
    "    })\n",
    "    \n",
    "    # 如果提供了日期，则设置为索引\n",
    "    if dates is not None:\n",
    "        results_df['Date'] = dates\n",
    "        results_df = results_df.set_index('Date')\n",
    "        results_df = results_df.sort_index()  # 按日期排序\n",
    "    \n",
    "    # 图1：对比图\n",
    "    plt.figure(figsize=(15, 8))\n",
    "    \n",
    "    # 绘制实际值和预测值\n",
    "    plt.plot(results_df.index, results_df['Actual'], 'b-', label='actual', linewidth=2)\n",
    "    plt.plot(results_df.index, results_df['Predicted'], 'r-', label='predicted', linewidth=2)\n",
    "    \n",
    "    # 填充预测误差区域\n",
    "    plt.fill_between(results_df.index, results_df['Actual'], results_df['Predicted'], \n",
    "                    color='gray', alpha=0.2, label='missing')\n",
    "    \n",
    "    # 计算MAE并添加到图中\n",
    "    mae = np.mean(np.abs(results_df['Actual'] - results_df['Predicted']))\n",
    "    mae_text = f\"MAE: {mae:.5f}\"\n",
    "    plt.annotate(mae_text, xy=(0.05, 0.95), xycoords='axes fraction',\n",
    "                bbox=dict(boxstyle='round,pad=0.5', facecolor='yellow', alpha=0.5))\n",
    "    \n",
    "    # 添加图表元素\n",
    "    plt.title(title, fontsize=16)\n",
    "    plt.xlabel('time', fontsize=14)\n",
    "    plt.ylabel('number', fontsize=14)\n",
    "    plt.legend(loc='best', fontsize=12)\n",
    "    plt.grid(True, linestyle='--', alpha=0.7)\n",
    "    \n",
    "    # 调整x轴标签，避免拥挤\n",
    "    if dates is not None and len(dates) > 20:\n",
    "        plt.xticks(rotation=45)\n",
    "        plt.gca().xaxis.set_major_locator(plt.MaxNLocator(20))\n",
    "    \n",
    "    plt.tight_layout()\n",
    "    plt.savefig('time_series_prediction_comparison.png')\n",
    "    plt.show()\n",
    "    \n",
    "    # 图2：仅实际值\n",
    "    plt.figure(figsize=(15, 8))\n",
    "    \n",
    "    # 只绘制实际值\n",
    "    plt.plot(results_df.index, results_df['Actual'], 'b-', linewidth=2)\n",
    "    \n",
    "    # 添加图表元素\n",
    "    plt.title(f\"{title} - Actual Values Only\", fontsize=16)\n",
    "    plt.xlabel('time', fontsize=14)\n",
    "    plt.ylabel('number', fontsize=14)\n",
    "    plt.grid(True, linestyle='--', alpha=0.7)\n",
    "    \n",
    "    # 调整x轴标签，避免拥挤\n",
    "    if dates is not None and len(dates) > 20:\n",
    "        plt.xticks(rotation=45)\n",
    "        plt.gca().xaxis.set_major_locator(plt.MaxNLocator(20))\n",
    "    \n",
    "    plt.tight_layout()\n",
    "    plt.savefig('actual_values_only.png')\n",
    "    plt.show()\n",
    "    \n",
    "    return results_df\n",
    "def main_pipeline_with_stacking(train_file, feature_engineering=True, train_new_models=True, config_path=None):\n",
    "    \"\"\"使用stacking技术的完整训练与评估流程\"\"\"\n",
    "    print(\"\\n========== 启动美股价格预测模型训练流程 ==========\")\n",
    "    \n",
    "    try:\n",
    "        # 1. 数据读取与基础清洗\n",
    "        df_train = read_data_efficiently(train_file, debug=DEBUG, sample_size=SAMPLE_SIZE)\n",
    "        df_train = clean_data(df_train)\n",
    "        \n",
    "        # 2. 高级数据预处理\n",
    "        df_train = advanced_data_preprocessing(df_train)\n",
    "        # 3. 特征工程\n",
    "        if feature_engineering:\n",
    "           print(\"\\n执行特征工程...\")\n",
    "           df_train =engineer_optimized_features(df_train)\n",
    "        # if feature_engineering:\n",
    "        #     print(\"\\n执行特征工程...\")\n",
    "            \n",
    "        #     df_train = engineer_features_safe(df_train)\n",
    "        \n",
    "        # 3.5 全面数据清理 - 添加这一步以确保数据质量\n",
    "        df_train_pd = df_train.to_pandas()\n",
    "        df_train_pd = clean_dataset_thoroughly(df_train_pd)\n",
    "        \n",
    "        # 4. 准备训练数据\n",
    "        print(\"\\n准备训练数据...\")\n",
    "        \n",
    "        excluded_cols = ['target', 'row_id', 'stock_id', 'date_id']\n",
    "        feature_cols = [col for col in df_train_pd.columns if col not in excluded_cols and col in df_train_pd.columns]\n",
    "        \n",
    "        X = df_train_pd[feature_cols]\n",
    "        y = df_train_pd['target']\n",
    "        \n",
    "        # 5. 训练测试集划分\n",
    "        print(\"\\n划分训练集和验证集...\")\n",
    "        X_train, X_val, y_train, y_val = train_test_split(\n",
    "            X, y, test_size=0.2, random_state=RANDOM_SEED\n",
    "        )\n",
    "        \n",
    "        # 再次检查训练集和验证集中是否有无穷值或NaN值\n",
    "        if np.isinf(X_train.values).any() or np.isnan(X_train.values).any():\n",
    "            print(\"警告：训练集中仍存在无穷值或NaN值，再次清理...\")\n",
    "            X_train = clean_dataset_thoroughly(X_train)\n",
    "            \n",
    "        if np.isinf(X_val.values).any() or np.isnan(X_val.values).any():\n",
    "            print(\"警告：验证集中仍存在无穷值或NaN值，再次清理...\")\n",
    "            X_val = clean_dataset_thoroughly(X_val)\n",
    "        \n",
    "        # 6. 识别类别特征\n",
    "        categorical_features = []\n",
    "        for col in X_train.columns:\n",
    "            if X_train[col].dtype == 'category' or X_train[col].dtype == 'object':\n",
    "                categorical_features.append(col)\n",
    "        print(f\"识别到 {len(categorical_features)} 个类别特征\")\n",
    "        \n",
    "        # 以下代码保持不变...\n",
    "        # 7. 特征选择和模型训练\n",
    "        if train_new_models:\n",
    "            print(\"\\n执行多算法集成特征选择...\")\n",
    "            X_train_selected, X_val_selected, ensemble_features, ensemble_importance_df, _ = ensemble_feature_selection(\n",
    "                X_train, y_train, X_val, y_val, \n",
    "                categorical_features=categorical_features,\n",
    "                n_top_features=50\n",
    "            )\n",
    "            \n",
    "            # 更新数据集为经过特征选择的版本\n",
    "            X_train = X_train[ensemble_features]\n",
    "            X_val = X_val[ensemble_features]\n",
    "            categorical_features = [f for f in categorical_features if f in ensemble_features]\n",
    "            \n",
    "            print(f\"\\n特征选择后的特征数量: {len(ensemble_features)}\")\n",
    "        else:\n",
    "            # 从配置中加载特征\n",
    "            _, config = load_models(config_path)\n",
    "            ensemble_features = config.get('feature_names', [])\n",
    "            \n",
    "            # 确保特征存在于数据集中\n",
    "            ensemble_features = [f for f in ensemble_features if f in X_val.columns]\n",
    "            X_train = X_train[ensemble_features]\n",
    "            X_val = X_val[ensemble_features]\n",
    "            categorical_features = [f for f in categorical_features if f in ensemble_features]\n",
    "            \n",
    "            print(f\"\\n使用配置中的 {len(ensemble_features)} 个特征\")\n",
    "        \n",
    "        # 8. 构建Stacking模型\n",
    "        if train_new_models:\n",
    "            print(\"\\n构建Stacking模型...\")\n",
    "            stacking_model, metrics = create_stacking_model(\n",
    "                X_train, y_train, X_val, y_val, \n",
    "                categorical_features=categorical_features,\n",
    "                n_folds=5\n",
    "            )\n",
    "            \n",
    "            # 保存模型\n",
    "            config_path = save_stacking_model(stacking_model)\n",
    "            \n",
    "            # 在验证集上进行预测\n",
    "            stacking_preds = stacking_predict(\n",
    "                stacking_model, X_val, categorical_features=categorical_features\n",
    "            )\n",
    "            \n",
    "            # 评估模型性能\n",
    "            stacking_mae = mean_absolute_error(y_val, stacking_preds)\n",
    "            print(f\"\\nStacking模型在验证集上的MAE: {stacking_mae:.5f}\")\n",
    "            if 'date_id' in df_train_pd.columns:\n",
    "                val_dates = df_train_pd.loc[X_val.index, 'date_id']\n",
    "                print(\"\\n绘制时间序列预测对比图...\")\n",
    "                results_df = plot_predictions_over_time(\n",
    "                    y_val, \n",
    "                    stacking_preds, \n",
    "                    dates=val_dates,\n",
    "                    title='Stacking_model: predicted_vs_actual'\n",
    "                )\n",
    "            else:\n",
    "                print(\"\\n绘制时间序列预测对比图(使用索引作为顺序)...\")\n",
    "                results_df = plot_predictions_over_time(\n",
    "                    y_val, \n",
    "                    stacking_preds,\n",
    "                    title='Stacking_model: predicted_vs_actual'\n",
    "                )\n",
    "            # 存储预测结果和性能指标\n",
    "            predictions = {\n",
    "                'stacking': stacking_preds,\n",
    "                'base_models': metrics['base_model_maes'],\n",
    "                'meta_model': metrics['meta_model_mae']\n",
    "            }\n",
    "            \n",
    "            all_metrics = {\n",
    "                'stacking_mae': stacking_mae,\n",
    "                'base_model_maes': metrics['base_model_maes'],\n",
    "                'meta_model_mae': metrics['meta_model_mae']\n",
    "            }\n",
    "        else:\n",
    "            # 加载已有模型\n",
    "            print(\"\\n加载已有Stacking模型...\")\n",
    "            stacking_model = load_stacking_model(config_path)\n",
    "            \n",
    "            # 在验证集上进行预测\n",
    "            stacking_preds = stacking_predict(\n",
    "                stacking_model, X_val, categorical_features=categorical_features\n",
    "            )\n",
    "            \n",
    "            # 评估模型性能\n",
    "            stacking_mae = mean_absolute_error(y_val, stacking_preds)\n",
    "            print(f\"\\nStacking模型在验证集上的MAE: {stacking_mae:.5f}\")\n",
    "            \n",
    "            predictions = {'stacking': stacking_preds}\n",
    "            all_metrics = {'stacking_mae': stacking_mae}\n",
    "        \n",
    "        # 9. 可视化结果\n",
    "        plt.figure(figsize=(12, 8))\n",
    "        plt.scatter(y_val, stacking_preds, alpha=0.5)\n",
    "        plt.plot([y_val.min(), y_val.max()], [y_val.min(), y_val.max()], 'r--')\n",
    "        \n",
    "        plt.title('Stacking Model: Predicted vs Actual')\n",
    "        plt.xlabel('Actual')\n",
    "        plt.ylabel('Predicted')\n",
    "        plt.grid(True)\n",
    "        \n",
    "        # 添加MAE注释\n",
    "        mae_text = f\"MAE: {stacking_mae:.5f}\"\n",
    "        plt.annotate(mae_text, xy=(0.05, 0.95), xycoords='axes fraction', \n",
    "                     bbox=dict(boxstyle='round,pad=0.5', facecolor='yellow', alpha=0.5))\n",
    "        \n",
    "        plt.savefig('stacking_model_performance.png')\n",
    "        plt.show()\n",
    "        \n",
    "        print(\"\\n========== 美股价格预测模型训练流程完成 (Stacking版) ==========\")\n",
    "        \n",
    "        return stacking_model, all_metrics, df_train_pd, ensemble_features\n",
    "        \n",
    "    except Exception as e:\n",
    "        print(f\"错误: {e}\")\n",
    "        import traceback\n",
    "        traceback.print_exc()\n",
    "        \n",
    "        # 如果出错，试图返回有用的信息\n",
    "        return None, {\"error\": str(e)}, None, None\n",
    "\n",
    "\n",
    "def main(train_file, debug=True, sample_size=10000, feature_engineering=True, \n",
    "         train_new_models=True, config_path=None, use_stacking=True):\n",
    "\n",
    "    global DEBUG, SAMPLE_SIZE\n",
    "    DEBUG = debug\n",
    "    SAMPLE_SIZE = sample_size\n",
    "    \n",
    "    print(\"配置参数:\")\n",
    "    print(f\"- 训练数据文件: {train_file}\")\n",
    "    print(f\"- 调试模式: {'启用' if DEBUG else '禁用'}\")\n",
    "    if DEBUG:\n",
    "        print(f\"- 样本大小: {SAMPLE_SIZE}\")\n",
    "    print(f\"- 特征工程: {'启用' if feature_engineering else '禁用'}\")\n",
    "    print(f\"- 训练新模型: {'是' if train_new_models else '否'}\")\n",
    "    if not train_new_models and config_path:\n",
    "        print(f\"- 加载模型配置: {config_path}\")\n",
    "    print(f\"- 使用Stacking: {'是' if use_stacking else '否'}\")\n",
    "    \n",
    "    # 调用适当的pipeline\n",
    "    if use_stacking:\n",
    "        return main_pipeline_with_stacking(\n",
    "            train_file=train_file,\n",
    "            feature_engineering=feature_engineering,\n",
    "            train_new_models=train_new_models,\n",
    "            config_path=config_path\n",
    "        )\n",
    "    else:\n",
    "        return main_pipeline(\n",
    "            train_file=train_file,\n",
    "            feature_engineering=feature_engineering,\n",
    "            train_new_models=train_new_models,\n",
    "            config_path=config_path\n",
    "        )\n",
    "# 使用示例（在Jupyter中直接执行以下代码）:\n",
    "\n",
    "# 设置参数\n",
    "train_file = \"train.csv\"  # 替换为您的训练数据文件路径\n",
    "debug = False# 调试模式\n",
    "sample_size = 5000             # 调试样本大小\n",
    "\n",
    "# 运行主函数\n",
    "model, metrics, data, features = main(\n",
    "    train_file=train_file,\n",
    "    debug=debug,\n",
    "    sample_size=sample_size,\n",
    "    feature_engineering=True,\n",
    "    train_new_models=True\n",
    ")\n",
    "\n",
    "# 打印结果摘要\n",
    "print(\"\\n结果摘要:\")\n",
    "for metric_name, value in metrics.items():\n",
    "    if isinstance(value, (int, float)):\n",
    "        print(f\"- {metric_name}: {value:.5f}\")\n",
    "    else:\n",
    "        print(f\"- {metric_name}: {value}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1e4d1a8e-7145-4a8f-858f-8fd4249f9fb2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4bdc5682-1924-463e-9735-d0a5c74ecf80",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
